Pagini recente » Cod sursa (job #1376341) | Cod sursa (job #58615) | Cod sursa (job #1088910) | Cod sursa (job #2785470) | Cod sursa (job #2385106)
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
void operatie(FILE* pf, FILE* qf, int* a, int op)
{
if(op == 0){
int T, V;
fscanf(pf,"%d%d", &T, &V);
T--;
a[T] = a[T] - V;
assert(a[T]>=0);
}
else{ // op == 1
int P, Q, sum = 0;
fscanf(pf,"%d%d", &P, &Q);
P--;
for(int i=P; i<Q; i++)
sum += a[i];
fprintf(qf,"%d\n",sum);
}
}
void asignare(FILE* pf, int N, int* a)
{
for(int i=0; i<N; i++)
fscanf(pf, "%d", &a[i]);
}
int main()
{
int i=0, N, M, op;
int *a;
FILE* pf;
FILE* qf;
pf = fopen("datorii.in.txt", "r");
qf = fopen("datorii.out.txt", "w");
fscanf(pf,"%d%d", &N, &M);
a = (int*)malloc(N*sizeof(int));
asignare(pf, N, a);
while (i<M){
fscanf(pf,"%d", &op);
operatie(pf, qf, a, op);
i++;
}
fclose(pf);
fclose(qf);
return 0;
}