Cod sursă (job #290506)

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

using namespace std;

bitset <50005> a;
bitset <50005> b;

struct Triplu
{
    int l, c, v;
};

Triplu d[10005];
int k, n;


void Read()
{
    int i;

    ifstream fin("beculete.in");
    fin >> n >> k;

    for(i = 1; i <= k; i++)
        fin >> d[i].l >> d[i].c >> d[i].v;
    k = 1;
    fin.close();
}

void Dead()
{
    a[d[k].c] = 0;
}
void Live()
{
    a[d[k].c] = 1;
}

void Afisare(int n)
{
    int i;

    for(i = 1; i <= n; i++)
        cout << a[i] << " ";
        cout << "\n";
}

void Solve()
{
    int i, j;

    for(i = 2; i <= n; i++)
    {

        for(j = 1; j <= i; j++)
        {
            if((a[j] == 1 && a[j - 1] == 0) || (a[j - 1] == 1 && a[j] == 0))
                b[j] = 1;
            else b[j] = 0;
        }

        a = b;

        while(d[k].l == i)
        {
            if(d[k].v == 0)
                Dead();
            else
                Live();
            k++;
        }
    }

    ofstream fout("beculete.out");

    for(i = 1; i <= n; i++)
        fout << a[i] << " ";
    fout << "\n";
    fout.close();
}

int main()
{
    a[1] = 1;
    Read();
    Solve();
    return 0;
}