Pagini recente » Cod sursa (job #512372) | Cod sursa (job #725731) | Cod sursa (job #1625308) | Cod sursa (job #2373104) | Cod sursa (job #197659)
Cod sursa(job #197659)
#include <stdio.h>
int n,i,j,k,a[10],x[10],y[10],s[10],s2,b[10],s3,m;
int main()
{
freopen("reconst.in","r",stdin);
freopen("reconst.out","w",stdout);
scanf("%d%d",&n,&m);
for (i=1; i<=m; ++i) scanf("%d%d%d",&x[i],&y[i],&s[i]);
for (i=x[1]; i<y[1]; ++i) a[i]=1;
a[y[1]]=s[1]-(y[1]-x[1]);
b[y[1]]=1;
for (i=2; i<=m; ++i)
{
s2=0;
for (j=x[i]; j<=y[i]; ++j) s2+=a[j];
if (s2!=s[i])
{
s3=0;
for (j=x[i]; j<y[i]; ++j) { if (b[j]==0) a[j]=1; s3+=a[j]; }
a[y[i]]=s[i]-s3;
b[y[i]]=1;
}
for (k=i-1; k>0; --k)
{
s2=0;
for (j=x[k]; j<=y[k]; ++j) s2+=a[j];
if (s2!=s[k])
{
s3=0;
for (j=x[k]; j<=y[k]; ++j)
{
if (!b[j]) a[j]=1;
s3+=a[j];
}
j=y[k];
while (b[j]) --j;
s3-=a[j];
a[j]=s[k]-s3;
b[j]=1;
}
}
for (j=1; j<=n; ++j) b[j]=0;
}
for (k=m; k>0; --k)
{
s2=0;
for (j=x[k]; j<=y[k]; ++j) s2+=a[j];
if (s2!=s[k])
{
s3=0;
for (j=x[k]; j<=y[k]; ++j)
{
if (!b[j]) a[j]=1;
s3+=a[j];
}
j=y[k];
while (b[j]) --j;
s3-=a[j];
a[j]=s[k]-s3;
b[j]=1;
}
}
for (i=1; i<=n; ++i) printf("%d ",a[i]);
return 0;
}