Cod sursa(job #1471303)

Utilizator akaprosAna Kapros akapros Data 13 august 2015 16:28:48
Problema Invers Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <cstdio>
#include <cstring>
#include <algorithm>
#define Nmax 10002
using namespace std;
int m, i, j, t, up, x;
char s[Nmax];
void read()
{
    freopen("invers.in", "r", stdin);
    freopen("invers.out", "w", stdout);
    scanf("%d\n", &t);
    while (t --)
    {
        gets(s);
        m = strlen(s);
        i = 0; j = m - 1;
        up = 0;
        x = 0;

        while (i < j)
        {
            if (s[i] < s[j] || (s[i] == '9' && s[j] == '0'))
                x = 1;
            else
                x = 0;
            if (s[i] == s[j] || abs(s[i] - s[j]) == 1 || abs(s[i] - s[j]) == 9)
            {
                ++ i;
                -- j;
                continue;
            }
            if (i == 1 && !up)
                ++ j,
                   up = 1;
            else
                {
                    i = 0;
                    j = m;
                    break;
                }
        }
        if (i < j || (i == j && (s[i] - '0' + x) % 2))
            printf("NU\n");
            else
                printf("DA\n");
    }
}
int main()
{
    read();
    return 0;
}