Pagini recente » Cod sursa (job #922095) | Cod sursa (job #183998) | Cod sursa (job #1697661) | Cod sursa (job #1461896) | Cod sursa (job #530534)
Cod sursa(job #530534)
#include <algorithm>
#include <stdio.h>
#include <vector>
#define MAX 2048
#define pb push_back
#define mp make_pair
#define f first
#define s second
using namespace std;
int n, m, a, b, s;
vector <pair <int, int> > vctNr[MAX];
int pus[MAX];
int main()
{
freopen("reconst.in", "r", stdin);
freopen("reconst.out", "w", stdout);
scanf("%d %d", &n, &m);
for (int i = 1; i <= m; i++)
{
scanf("%d %d %d", &a, &b, &s);
vctNr[a].pb(mp(b, s));
}
for (int i = 1; i <= n; i++)
{
sort(vctNr[i].begin(), vctNr[i].end());
for (int j = 1; j < vctNr[i].size(); j++)
if (vctNr[i][j].f > vctNr[i][0].f)
vctNr[vctNr[i][0].f + 1].pb(mp(vctNr[i][j].f, vctNr[i][j].s - vctNr[i][0].s));
}
for (int i = n; i; i--)
{
int s = 0;
for (int j = i + 1; j <= vctNr[i][0].f; j++)
s += pus[j];
pus[i] = vctNr[i][0].s - s;
}
for (int i = 1; i <= n; i++)
printf("%d ", pus[i]);
fclose(stdin);
fclose(stdout);
return 0;
}