Pagini recente » Cod sursa (job #335219) | Cod sursa (job #2176863) | Cod sursa (job #1766128) | Cod sursa (job #2769539) | Cod sursa (job #2036685)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream f("reconst.in");
ofstream g("reconst.out");
struct inter
{
int st,dr,s;
}x[2005],r;
bool cmp(inter a,inter b)
{
if(a.st<b.st)
return 1;
if(a.st>b.st)
return 0;
return a.dr<b.dr;
}
int a[2005],n,m,j,i;
long long spar[2005];
int main()
{
f>>n>>m;
for(i=1;i<=m;i++)
{
f>>x[i].st>>x[i].dr>>x[i].s;
}
sort(x+1,x+1+m,cmp);
for(i=1;i<=m;i++)
{
for(j=1;j<i;j++)
{
if(x[i].st==x[j].st&&x[i].dr<x[j].dr)
{
r=x[j];
x[j]=x[i];
x[i]=r;
}
if(x[i].st==x[j].st)
{
x[i].st=x[j].dr+1;
x[i].s-=x[j].s;
}
}
}
sort(x+1,x+1+m,cmp);
int poz=m;
for(i=n;i>=1;i--)
{
while(poz&&(x[poz].st>x[poz].dr||x[poz].st>i))
poz--;
if(poz&&x[poz].st==i)
a[i]=x[poz].s-spar[i+1]+spar[x[poz].dr+1];
else
a[i]=0;
spar[i]=spar[i+1]+a[i];
}
for(i=1;i<=n;i++)
g<<a[i]<<' ';
return 0;
}