Cod sursa(job #442718)

Utilizator corigebcorina geboiu corigeb Data 15 aprilie 2010 00:04:09
Problema Datorii Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 1.28 kb
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>


int n,m;
int *sum,*val,**cod;
void citire(FILE *f){
     int i,j=0;
     fscanf(f,"%d",&n);
     printf("n=%d\n",n);
     val = (int*)calloc( n, sizeof(int) );
     fscanf(f,"%d",&m);
     
     cod = (int**)malloc(m*sizeof(int*));//m linii
     for ( i = 0; i<m; i++)
         cod[i] = (int*)calloc(3, sizeof(int));//a cate 3 coloane
     
     fscanf(f,"\n");
     
     for(i=0; i<n;i++)
       fscanf(f,"%d",&val[i]);
        
     for(j=0;j<m;j++){
       for(i=0;i<3;i++)
         fscanf(f,"%d",&cod[j][i]);
       fscanf(f,"\n");
       }     
}

void procesare(FILE* fout){
     int i,j,k=0;
     int var = 0;
     sum = (int*)calloc( m, sizeof(int) );
     for(i=0;i<m;i++){

            if(cod[i][0]==0)
               val[cod[i][1]-1]-= cod[i][2];
               
            else {
               for(j=cod[i][1]-1;j<=cod[i][2]-1;j++)
                  sum[k] += val[j];
               fprintf(fout,"%d\n",sum[k]);
               k++;
            }
     }
}     
int main(){
  int i,j;
  FILE* f;
	f=fopen("datorii.in","r");
	citire(f);
    fclose(f);
   
  FILE* fout; 
  fout = fopen("datorii.out","w");
  procesare(fout);
  fclose(fout);
  system("PAUSE");
  return 0;
}