Cod sursă (job #290530)

Utilizator avatar stefanst77 Luca Stefan stefanst77 IP ascuns
Problemă Beculețe (clasele 9-10) Compilator cpp | 1,11 kb
Rundă Arhiva de probleme Status evaluat
Dată 8 mar. 2017 12:39:43 Scor 20
#include <bits/stdc++.h>

using namespace std;

ifstream fin ("beculete.in");
ofstream fout ("beculete.out");

int n, d;
int cnt;
bitset <50007> a;
bitset <50007> b;
struct Bec
{
    int L, C, V;
};
Bec t[10007];

void Citire()
{
    int i;
    fin >> n >> d;
    for (i=1; i<=d; i++)
        fin >> t[i].L >> t[i].C >> t[i].V;
}

int Verificare(int lin, int col, int schimba)
{
    if (t[cnt+1].L==lin && t[cnt+1].C==col)
    {
        ++cnt;
        return t[cnt].V;
    }
    return schimba;
}

void Simulare()
{
    int i, j;
    a[1]=1;
    for (i=1; i<n; i++)
    {
        for (j=1; j<=i; j++)
            a[j]=Verificare(i, j, a[j]);
        for (j=1; j<=i+1; j++)
        {
            if (a[j]==1 && a[j-1]==1) b[j]=0;
            if ((a[j]==1 && a[j-1]==0) || (a[j-1]==1 && a[j]==0)) b[j]=1;
            else b[j]=0;
        }
        for (j=1; j<=i+1; j++)
            a[j]=b[j];
    }
    for (i=1; i<=n; i++)
        fout << a[i] << " ";
    fout << "\n";
}

int main()
{
    Citire();
    Simulare();
    fin.close();
    fout.close();
    return 0;
}