Cod sursă (job #417827)

Utilizator avatar AdelaCorbeanu Corbeanu Adela AdelaCorbeanu IP ascuns
Problemă Beculețe (clasele 9-10) Compilator cpp | 1,00 kb
Rundă concurs_7_10 Status evaluat
Dată 10 ian. 2019 14:41:26 Scor 0
#include <fstream>
using namespace std;
int n, d, v[50001], a, b, c, k, linie, nr, s;
int main()
{
    ifstream fin("beculete.in");
    ofstream fout("beculete.out");
    fin >> n >> d;
    nr = n*(n+1)/2;
    for (int i=1;i<=nr;i++) v[i] = -1;
    for (int i=1;i<=d;i++) {
        fin >> a >> b >> c;
        s = a*(a-1)/2;
        s = s+b;
        v[s] = c;
    }
    v[1] = 1;
    k = 3;
    linie = 2;
    for (int i=2;i<=nr;i++) {
        if (v[i]==-1) {
           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=1;i<=nr;i++) fout << v[i] << " ";
    return 0;
}