Cod sursă (job #417943)

Utilizator avatar TediDinuta Dinuta Eduard Stefan TediDinuta IP ascuns
Problemă Beculețe (clasele 9-10) Compilator cpp | 0,92 kb
Rundă concurs_7_10 Status evaluat
Dată 10 ian. 2019 17:10:50 Scor 30
#include <bits/stdc++.h>

using namespace std;
int n,d,l1,l,v,c,k;
bitset<50001> a[3];
bitset<50001> ok;
int main()
{
   freopen("beculete.in","r",stdin);
   freopen("beculete.out","w",stdout);
   scanf("%d%d",&n,&d);
   scanf("%d%d%d",&l,&c,&v);
   d--;
   a[1][1]=1;
   l1=2;
   while(l1<=n)
   {
      while(l1==l&&d>-1)
      {
          if(v==1) a[2][c]=1;
          else ok[c]=1;
          scanf("%d%d%d",&l,&c,&v);
          d--;
      }
      if(a[1][1]==1&&ok[1]!=1) a[2][1]=1;
      for(int i=2;i<l1;i++)
    {
        k=0;
        if(a[1][i]==1) k++;
        if(a[1][i-1]==1) k++;
        if(k==1&&ok[i]!=1) a[2][i]=1;
    }
    if(a[1][l1-1]==1&&ok[l1]!=1) a[2][l1]=1;
    for(int i=1;i<=l1;i++)
    {
        if(a[2][i]!=-1) a[1][i]=a[2][i];
        else a[1][i]=0;
        a[2][i]=0;
        ok[i]=0;
    }
    l1++;
   }
  for(int i=1;i<=n;i++) cout<<a[1][i]<<" ";
   return 0;
}