Pagini recente » Cod sursa (job #1631675) | Cod sursa (job #2665008) | Cod sursa (job #745022) | Cod sursa (job #446311) | Cod sursa (job #206334)
Cod sursa(job #206334)
#include<stdio.h>
#define NMAX 2024
//Motto: Be greedy!
int A[NMAX],S[NMAX],SOL[NMAX];
bool REC[NMAX];
void solve(const int a1,const int a2,const int a3)
{
if( REC[a1]==false )
{ //initialize
A[a1]=a2;
S[a1]=a3;
REC[a1]=true;
}
else
{
if( A[a1]<a2 )
{ //change
solve( A[a1]+1, a2, a3-S[a1] );
}
else
if( A[a1]>a2 )
{ //replace
solve( a2+1, A[a1], S[a1]-a3 );
A[a1]=a2;
S[a1]=a3;
}
}
}
int main()
{
freopen("reconst.in","r",stdin);
freopen("reconst.out","w",stdout);
int N,M;
scanf("%d%d\n",&N,&M);
int a1,a2,a3;
int i,j;
for(i=1; i<=N; ++i) REC[i]=false;
for(i=1; i<=M; ++i){
scanf("%d%d%d",&a1,&a2,&a3);
solve(a1,a2,a3);
}
for(i=N; i>=1; --i)
{ // printf("%d ",S[i]);
SOL[i]=S[i];
for(j=i+1; j<=A[i]; ++j)
SOL[i]-=S[j];
S[i]=SOL[i];
}
for(i=1; i<=N; ++i)
printf("%d ",SOL[i]);
printf("\n");
return 0;
}