Pagini recente »
Monitorul de evaluare
|
Profil PoascaStefan
|
Statistici Ionescu Radu (Radhu2)
|
Statistici Marin Andrada (anaella2010)
|
Cod sursă (job #525821)
Cod sursă (job
#525821)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("beculete.in");
ofstream out("beculete.out");
const int NMAX=50010;
unsigned a[NMAX/32+2];
unsigned n, d, state, ll, cc;
void setbit(unsigned poz, unsigned val)
{
unsigned chunk=poz>>5;
unsigned buc=poz&((1<<5)-1);
char mask=1<<buc;
a[chunk]&=~mask;
a[chunk]|=(val<<buc);
}
unsigned getbit(unsigned poz)
{
unsigned chunk=poz>>5;
unsigned buc=poz&((1<<5)-1);
return (a[chunk]>>buc)&1;
}
int main()
{
in>>n>>d;
a[0]=1;
if(d)
in>>ll>>cc>>state;
for(int i=2; i<=n; i++)
{
unsigned temp1=0, temp2=0, j;
for(j=0; (j<<5)<=i; j++)
{
temp1=a[j]>>31;
unsigned mask=(a[j]<<1)+temp2;
a[j]^=mask;
temp2=temp1&1;
}
a[j]=temp1;
while(ll==i&&d>0)
{
setbit(cc-1, state);
in>>ll>>cc>>state;
d--;
}
}
for(int i=0; i<n; i++)
out<<getbit(i)<<" ";
return 0;
}