Pagini recente »
Monitorul de evaluare
|
Monitorul de evaluare
|
Statistici Trepteanu Lucian (LucianT)
|
Rating Iordache Andreea (iandreea1706)
|
Cod sursă (job #462987)
Cod sursă (job
#462987)
#include <stdio.h>
#define MAX 50000
FILE *fin,*fout;
unsigned v[MAX/32+2];
void setBit(int poz, int b, int i){
int x=poz>>5;
int y=poz&((1<<5)-1);//poz%32
v[x]&=(~(1<<y)); //setez bitul y pe 0
v[x]|=(b<<y); //ii dau bitului y valoarea b
}
int main(){
fin=fopen("beculete.in","r");
fout=fopen("beculete.out","w");
int n,d,l,c,bit,i,j,a,b,aux;
unsigned mask;
fscanf(fin,"%d%d",&n,&d);
if(d)
fscanf(fin,"%d%d%d",&l,&c,&bit);
j=v[0]=1;
for(i=2; i<=n; i++){
b=0;
for(a=0; a*32<=i; a++){
aux=v[a]>>31;
mask=(v[a]<<1)+b;
v[a]^=mask;
b=aux;
}
v[a]=aux;
while(j<=d && l==i){
setBit(c-1,bit,i);
fscanf(fin,"%d%d%d",&l,&c,&bit);
j++;
}
}
for(a=0; a<(n-32)/32; a++)
for(i=0; i<32; i++){
fprintf(fout,"%u ",v[a]&1);
v[a]>>=1;
}
for(i=0; i<n-a*32; i++){
fprintf(fout,"%u ",v[a]&1);
v[a]>>=1;
}
fclose(fin);
fclose(fout);
return 0;
}