Решение задачи В одном шаге от счастья с Acmp

Без пояснения   Просмотров: 48


Вова купил билет в трамвае 13-го маршрута и сразу посчитал суммы первых трёх цифр и последних трёх цифр номера билета (номер у билета шестизначный). Оказалось, что суммы отличаются ровно на единицу. «Я в одном шаге от счастья», — подумал Вова, — «или предыдущий или следующий билет точно счастливый». Прав ли он?

Код

#include <bits/stdc++.h>
 
using namespace std;
 
int main()
{
    string str;
    int n;
    bool b = false;
    cin >> n;
    string str2;
    str2.clear();
    for(int i = 0; i < n; ++i){
        str2.clear();
        cin >> str;
        str2+=str;
        if(str[5]=='9'){
            str[5] = '0';
            b = true;
        }
        else
            str[5]++;
        if(b==true)
            if(str[4]=='9')
                str[4] ='0';
            else{
                str[4]++;
                b = false;
            }
        if(b==true)
            if(str[3]=='9')
                str[3]=='0';
            else{
                str[3]++;
                b = false;
            }
        if(b==true)
            if(str[2]=='9')
                str[2]=='0';
            else{
                str[2]++;
                b = false;
            }
        if(b==true)
            if(str[1]=='9')
                str[1]=='0';
            else{
                str[1]++;
                b = false;
        }
        if(b==true)
            if(str[0]=='9')
                str[0]=='0';
            else{
                str[0]++;
                b = false;
        }
    int a = str[0] + str[1] + str[2];
    int b = str[3] + str[4] + str[5];
    if(a==b)
        cout << "Yes" << endl;
    else{
        b = false;
        if(str2[5]=='0'){
            str2[5] = '9';
            b = true;
        }
        else
            str2[5]--;
        if(b==true)
            if(str2[4]=='0')
                str2[4] ='9';
            else{
                str2[4]--;
                b = false;
            }
        if(b==true)
            if(str2[3]=='0')
                str2[3]=='9';
            else{
                str2[3]--;
                b = false;
            }
        if(b==true)
            if(str2[2]=='0')
                str2[2]=='9';
            else{
                str2[2]--;
                b = false;
            }
        if(b==true)
            if(str2[1]=='0')
                str2[1]=='9';
            else{
                str2[1]--;
                b = false;
        }
        if(b==true)
            if(str2[0]=='0')
                str2[0]=='9';
            else{
                str2[0]--;
                b = false;
        }
    int a = str2[0] + str2[1] + str2[2];
    int b = str2[3] + str2[4] + str2[5];
    if(a==b)
        cout << "Yes" << endl;
    else
        cout << "No"<< endl;
    }
    }
    return 0;
}

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться