Pagini recente » Cod sursa (job #2647873) | Cod sursa (job #1797462) | Cod sursa (job #2825823) | Cod sursa (job #1337885) | Cod sursa (job #197728)
Cod sursa(job #197728)
#include <stdio.h>
#include <algorithm>
using namespace std;
#define maxn 2010
int n, m;
int a[maxn], b[maxn];
int x[maxn], y[maxn], p[maxn], s[maxn];
int sum[maxn], sol[maxn];
int main()
{
freopen("reconst.in", "r", stdin);
freopen("reconst.out", "w", stdout);
scanf("%d %d ", &n, &m);
int i;
for (i=1; i<=m; i++) scanf("%d %d %d ", &x[i], &y[i], &s[i]);
for (i=1; i<=m; i++)
{
while (a[y[i]] && x[i]<=y[i])
{
if (a[y[i]] >= x[i]) s[i] -= b[y[i]];
else {
int v1, v2;
v1 = a[y[i]];
v2 = b[y[i]] - s[i];
b[y[i]] = s[i];
a[y[i]] = x[i];
x[i] = v1;
s[i] = v2;
}
y[i] = a[y[i]] - 1;
}
if (y[i] >= x[i])
{
a[y[i]] = x[i];
b[y[i]] = s[i];
}
}
for (i=1; i<=n; i++)
{
if (a[i]) sol[i] = b[i] - (sum[i-1] - sum[a[i]-1]);
sum[i] = sum[i-1] + sol[i];
}
for (i=1; i<=n; i++) printf("%d ", sol[i]);
printf("\n");
return 0;
}