Cod sursa(job #3235053)

Utilizator Mihai_OctMihai Octavian Mihai_Oct Data 13 iunie 2024 18:39:28
Problema Perle Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("perle.in");
ofstream fout("perle.out");
int t, n, i, a[10002];

static inline bool Calc(string c) {
    for(int i = 0; i < c.size(); i++) {
        if(c[i] == 'A') c[i] = a[i] + '0';
        else if(c[i] == 'B') {
            c.erase(i, 1);

            if(a[i] == 1) c.insert(i, "1A3AC");
            else if(a[i] == 2) c.insert(i, "2B");
        }
        else if(c[i] == 'C') {
            c.erase(i, 1);

            if(a[i] == 1) c.insert(i, "12A");
            else if(a[i] == 2) c.insert(i, "2");
            else if(a[i] == 3) c.insert(i, "3BC");
        }
        if(a[i] + '0' != c[i]) return false;
        if(c.size() > n) return false;
    }
    return (c.size() == n);
}

int main() {
    fin >> t;
    while(t--) {
        fin >> n;
        for(i = 0; i < n; i++) fin >> v[i];

        if(n == 1) fout << "1\n";
        else if(Calc("B")) fout << "1\n";
        else if(Calc("C")) fout << "1\n";
        else fout << "0\n";
    }

    return 0;
}