Pagini recente » Cod sursa (job #1301329) | Cod sursa (job #1471764) | Cod sursa (job #509916) | pregatire_lot1_juniori | Cod sursa (job #203767)
Cod sursa(job #203767)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int n, m, sum[2005], last[2005], v[2005];
void add(int a, int b, int s)
{
if (b < a) return;
if (last[a] == -1)
{
last[a] = b;
sum[a] = s;
}
else if (last[a] < b) add(last[a] + 1, b, s - sum[a]);
else
{
add(b + 1, last[a], sum[a] - s);
last[a] = b;
sum[a] = s;
}
}
int main()
{
freopen("reconst.in","r",stdin);
freopen("reconst.out","w",stdout);
int i, x, y, s;
memset(last,-1,sizeof(last));
scanf("%d %d",&n,&m);
for (i = 1; i <= m; i++)
{
scanf("%d %d %d",&x,&y,&s);
add(x,y,s);
}
for (i = n; i; --i)
if (last[i] != -1)
v[i] = sum[i] + v[last[i] + 1];
else v[i] = v[i + 1];
for (i = 1; i <= n; i++) printf("%d ",v[i] - v[i + 1]
);
return 0;
}