Pagini recente »
Cod sursă (job #714289)
|
Cod sursă (job #711068)
|
Cod sursă (job #195694)
|
Borderou de evaluare (job #21000)
|
Cod sursă (job #491900)
Cod sursă (job
#491900)
#include <bits/stdc++.h>
using namespace std;
ifstream in("beculete.in");
ofstream out ("beculete.out");
struct bec{
int linie;
int coloana;
bool valoare;
};
bool sortare (bec a, bec b)
{
if(a.linie != b.linie)
return a.linie<b.linie;
return a.coloana<b.coloana;
}
bool lum[3][50005];
int main()
{
bec v[10005];
int n,d,i,l,c,va,lmin=INT_MAX,k=1,l1,j;
in>>n>>d;
for(i=1; i<=d; i++)
{
in>>l>>c>>va;
v[i].linie=l;
v[i].coloana=c;
v[i].valoare=va;
lmin=min(l,lmin);
}
sort(v+1,v+d+1, sortare);
k=1;
l1=pow(2,int(log10(lmin)/log10(2)));
for(i=1; i<=l1; i++)
{
if(v[k].linie==l1 && v[k].coloana==i)
lum[1][i]=v[k].valoare,k++;
else
lum[1][i]=1;
}
for(i=l1+1; i<=n; i++)
{
for(j=1; j<=i-1; j++)
{
if(v[k].linie==i && v[k].coloana==j)
lum[2][j]=v[k].valoare,k++;
else if(lum[1][j-1]+lum[1][j]==1)
lum[2][j]=1;
else
lum[2][j]=0;
}
if(v[k].linie==i && v[k].coloana==i)
lum[2][i]=v[k].valoare,k++;
else
lum[2][i]=lum[1][i-1];
for(j=1; j<=i; j++)
lum[1][j]=lum[2][j];
}
for(j=1; j<=n; j++)
out<<lum[2][j]<<" ";
return 0;
}