Pagini recente » Cod sursa (job #1103750) | Cod sursa (job #1745807) | Cod sursa (job #1938729) | Cod sursa (job #1601481) | Cod sursa (job #1515635)
// DatoriiInfoarena.cpp : Defines the entry point for the console application.
//
#include <stdio.h>
#include <stdlib.h>
typedef struct tag_OPERATION {
bool type;
long param1;
long param2;
} OPERATION;
int main(int argc, char *argv[])
{
long numOperations = 0;
long numOrders = 0;
long *lpOrder = NULL;
OPERATION *lpOp = NULL;
FILE *lpFile = fopen("datorii.in", "rt");
fscanf(lpFile, "%ld %ld", &numOrders, &numOperations);
lpOrder = new long[numOrders]; lpOp = new OPERATION[numOperations];
for (int i = 0; i < numOrders; i++) {
fscanf(lpFile, "%ld", &lpOrder[i]);
}
for (int i = 0; i < numOperations; i++) {
int type = 0;
fscanf(lpFile, "%ld %ld %ld", &type, &lpOp[i].param1, &lpOp[i].param2);
lpOp[i].type = (bool)type;
}
fclose(lpFile); lpFile = fopen("datorii.out", "wt");
for (int i = 0; i < numOperations; i++) {
if (lpOp[i].type) {
long sum = 0;
for (int j = lpOp[i].param1 - 1; j <= lpOp[i].param2 - 1; j++) sum += lpOrder[j];
fprintf(lpFile, "%ld\n", sum);
} else {
lpOrder[lpOp[i].param1 - 1] -= lpOp[i].param2;
}
}
fclose(lpFile);
delete[] lpOp;
delete[] lpOrder;
return 0;
}