Pagini recente » Istoria paginii runda/oji_2020_official/clasament | Cod sursa (job #25685) | Cod sursa (job #3155141) | Cod sursa (job #2307035) | Cod sursa (job #274520)
Cod sursa(job #274520)
#include<stdio.h>
#define Nmax 2005
FILE *fin=fopen("reconst.in","r"),
*fout=fopen("reconst.out","w");
int N,M;
long long A[Nmax];
struct bla{int b,s;} T[Nmax];
int main(){
fscanf(fin,"%d %d",&N,&M);
for(int i=1;i<=M;i++){
int x,y,z,aux;
fscanf(fin,"%d %d %d",&x,&y,&z);
while(T[x].b&&T[x].b!=y){
if(T[x].b<y){
z-=T[x].s;
x=T[x].b+1;
}
else{
z=T[x].s-z;
aux=x;
x=y+1;
y=T[aux].b;
}
}
if(T[x].b!=y)
T[x].b=y,T[x].s=z;
}
for(int i=N;i;--i){
if(T[i].b)
A[i]=T[i].s+A[T[i].b+1];
else
A[i]=A[i+1];
}
for(int i=1;i<N;i++)
fprintf(fout,"%d ",A[i]-A[i+1]);
fprintf(fout,"%d\n",A[N]);
fclose(fin);
fclose(fout);
return 0;
}