Cod sursa(job #2690899)

Utilizator tifui.alexandruTifui Ioan Alexandru tifui.alexandru Data 26 decembrie 2020 13:40:03
Problema Flux maxim Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <bits/stdc++.h>

using namespace std;

const int Vmax = 3e5;
int sg[Vmax + 5];

void precompute() {
    int sg_val = 0;
    for (int i = 2; i <= Vmax; ++i)
        if (!sg[i]) {
            sg[i] = ++sg_val;
            for (int j = i + i; j <= Vmax; j += i) 
                if (!sg[j]) sg[j] = sg_val;
        }
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    ifstream cin("cmmdcgame.in");
    ofstream cout("cmmdcgame.out");

    precompute();

    int t, n, x, xor_sum;
    cin >> t;
    while (t--) {
        xor_sum = 0;
        cin >> n;
        for (int i = 1; i <= n; ++i) {
            cin >> x;
            xor_sum ^= sg[x];
        }

        cout << (xor_sum ? "D\n" : "J\n");
    }

    return 0;
}