Cod sursa(job #202615)

Utilizator Matei14Popa-Matei Mihai Matei14 Data 10 august 2008 09:40:53
Problema Reconst Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<stdio.h>
#define N 2007
int n,m,v[N],sum[N],ul[N];
void add(int a,int b,int x){
    if(b<a)
        return;
    if(!ul[a]){
        ul[a]=b;
        sum[a]=x;
        return;
    }
    if(b>ul[a])
        add(ul[a]+1,b,x-sum[a]);
    else{
        add(b+1,ul[a],sum[a]-x);
        ul[a]=b;
        sum[a]=x;
    }
}
int main(){
	int a,b,c,i;
    freopen("reconst.in","r",stdin);
    freopen("reconst.out","w",stdout);
    scanf("%d%d",&n,&m);
    for(;m+1;--m){
        scanf("%d%d%d",&a,&b,&c);
        add(a,b,c);
    }
    for(i=n;i>0;--i){
        if(ul[i])
            v[i]=sum[i]+v[ul[i]+1];
        else
            v[i]=v[i+1];
    }
    for(i=1;i<n;++i)
        printf("%d ",v[i]-v[i+1]);
    printf("%d\n",v[n]);
    return 0;
}