Pagini recente » Istoria paginii utilizator/porumb_ | Cod sursa (job #1618) | Cod sursa (job #1591) | Profil valorosupetrache | Cod sursa (job #210856)
Cod sursa(job #210856)
#include <stdio.h>
#include <math.h>
#define MAXN 2010
long a, b, c, n, m, sir[MAXN], sum[MAXN], last[MAXN], i;
void insert(long a, long b, long s);
void insert(long a, long b, long s) {
if (b < a) {
return;
}
if (!last[a]) {
last[a]=b;
sum[a]=s;
return;
}
if (last[a] < b) {
insert(last[a] + 1, b , s - sum[a]);
} else {
insert(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);
scanf("%ld%ld", &n, &m);
for(i = m; i >= 1; --i) {
scanf("%ld%ld%ld", &a, &b, &c);
insert(a, b, c);
}
for (i = n; i > 0; --i) {
if(last[i]) {
sir[i] = sum[i] + sir[last[i] + 1];
} else {
sir[i] = sir[i + 1];
}
}
for (i = 1; i < n; ++i) {
printf("%ld ", sir[i] - sir[i + 1]);
}
printf("%ld\n", sir[n]);
return 0;
}