Cod sursa(job #198199)

Utilizator mihai_floreaFlorea Mihai Alexandru mihai_florea Data 9 iulie 2008 15:04:22
Problema Reconst Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <cstdio>
int n,m,fin[2001],s[2001],x[2001];
void baga(int a,int b,int sum){
     if (!fin[a]) {fin[a]=b;
                   s[a]=sum;
                   return;}
     if (fin[a]>b) {baga(b+1,fin[a],s[a]-sum);
                    fin[a]=0;
                    baga(a,b,sum);}
     if (fin[a]<b) baga(fin[a]+1,b,sum-s[a]);
     }
int main(){
    int i,a,b,sum;
    freopen("reconst.in","r",stdin);
    freopen("reconst.out","w",stdout);
    scanf("%d %d",&n,&m);
    while (m--){
          scanf("%d %d %d",&a,&b,&sum);
          baga(a,b,sum);
          }
    for (i=n;i;i--) 
     if (fin[i]){
       for (a=i+1,sum=0;a<=fin[i];++a)
        sum+=x[a];
       x[i]=s[i]-sum;
       }
    for (i=1;i<=n;++i) 
      printf("%d ",x[i]);
    return 0;
}