Pagini recente » Cod sursa (job #2267910) | Cod sursa (job #2324225) | Cod sursa (job #1765327) | Cod sursa (job #2485164) | Cod sursa (job #1972142)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream si("reconst.in");
ofstream so("reconst.out");
struct inter
{
int st,dr,s;
};
bool comp(inter a,inter b)
{
return a.dr<b.dr;
}
int v[2005];
inter x[2005];
long long sum[2005];
int main()
{
int n,m;
si>>n>>m;
for(int i=1;i<=m;++i)
{
si>>x[i].st>>x[i].dr>>x[i].s;
}
sort(x+1,x+1+m,comp);
inter r;
int poz,ns,nf;
for(int i=2;i<=m;++i)
{
poz=i;
while(poz&&x[poz].dr<=x[poz-1].dr)
{
if(x[poz].dr==x[poz-1].dr)
{
if(x[poz].st==x[poz-1].st)
break;
if(x[poz].st<x[poz-1].st)
{
x[poz].s-=x[poz-1].s;
}
else
x[poz].s=x[poz-1].s-x[poz].s;
ns=min(x[poz].st,x[poz-1].st);
nf=max(x[poz].st,x[poz-1].st)-1;
x[poz].st=ns;
x[poz].dr=nf;
}
else
{
r=x[poz];
x[poz]=x[poz-1];
x[poz-1]=r;
--poz;
}
}
}
poz=1;
for(int i=1;i<=n;++i)
{
if(i!=x[poz].dr)
{
sum[i]=sum[i-1]+v[i];
continue;
}
v[i]=x[poz].s-sum[i-1]+sum[x[poz].st-1];
sum[i]=sum[i-1]+v[i];
while(x[poz].dr==x[poz+1].dr)
++poz;
++poz;
}
for(int i=1;i<=n;++i)
so<<v[i]<<' ';
return 0;
}