Cod sursă (job #417830)

Utilizator avatar AdelaCorbeanu Corbeanu Adela AdelaCorbeanu IP ascuns
Problemă Beculețe (clasele 9-10) Compilator cpp | 1,03 kb
Rundă concurs_7_10 Status evaluat
Dată 10 ian. 2019 14:46:05 Scor 0
#include <bits/stdc++.h>
using namespace std;
int n, d, a, b, c, k, linie, nr, s;
bitset <1250025000> v;
bitset <1250025000> ap;
int main()
{
    ifstream fin("beculete.in");
    ofstream fout("beculete.out");
    fin >> n >> d;
    nr = n*(n+1)/2;
    for (int i=1;i<=d;i++) {
        fin >> a >> b >> c;
        s = a*(a-1)/2;
        s = s+b;
        v[s] = c;
        ap[s] = 1;
    }
    v[1] = 1;
    k = 3;
    linie = 2;
    for (int i=2;i<=nr;i++) {
        if (ap[i]==0) {
           if (i!=k && i!=k+1)
               if ((v[i-linie]==1 && v[i-linie+1]==0) || (v[i-linie]==0 && v[i-linie+1]==1)) v[i] = 1;
               else v[i] = 0;
           else if (i==k+1)
                    if (v[i-linie+1]==1) v[i] = 1;
                    else v[i] = 0;
           else if (i==k)
                    if (v[i-linie]==1) v[i] = 1;
                    else v[i] = 0;
        }
        if (i==k) linie++;
        if (i==k+1) k = k+linie;
    }
    for (int i=nr-n+1;i<=nr;i++) fout << v[i] << " ";
    return 0;
}