Cod sursa(job #2226890)

Utilizator inquisitorAnders inquisitor Data 30 iulie 2018 19:27:57
Problema Jocul NIM Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.24 kb
#include <stdio.h>
#pragma GCC optimize("O1")
#define BUFFER_SIZE 262144

__attribute__((always_inline)) unsigned int get_int()
{
    static char inBuffer[BUFFER_SIZE];

    static unsigned int p = BUFFER_SIZE - 1; unsigned int number = 0;

    for(; inBuffer[p] < 47;)
    {
        ++p != BUFFER_SIZE || (fread(inBuffer, 1, BUFFER_SIZE, stdin), p = 0);
    }

    for(; inBuffer[p] > 47;)
    {
        number = number * 10 + inBuffer[p] - 48;

        ++p != BUFFER_SIZE || (fread(inBuffer, 1, BUFFER_SIZE, stdin), p = 0);
    }

    return number;
}

int main()
{
    freopen("nim.in", "r", stdin);
    freopen("nim.out", "w", stdout);

    unsigned int T, N, x, S, q = -1;

    char buffer[305];

    T = get_int();

    for(;T--;)
    {
        N = get_int();

        S = 0;

        for(;N--;)
        {
            x = get_int();

            S ^= x;
        }

        if(S)
        {
            buffer[++q] = 'D';

            buffer[++q] = 'A';

            buffer[++q] = '\n';
        }
        else
        {
            buffer[++q] = 'N';

            buffer[++q] = 'U';

            buffer[++q] = '\n';
        }
    }

    buffer[++q] = '\0';

    puts(buffer);

    return 0;
}