Cod sursa(job #2835557)

Utilizator ciprian.morosanuCiprian Morosanu ciprian.morosanu Data 18 ianuarie 2022 21:10:12
Problema Datorii Scor 0
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <stdio.h>
#include <stdlib.h>

int get1(int *days, int start, int end) {
    int sum = 0;
    for (int i = start; i <= end; ++i) {
        sum += days[i];
    }
    return sum;
}

void update1(int *days, int day, int value) {
    days[day] -= value;
}

int main() {
    char *inFileName = "datorii.in";
    char *outFileName = "datorii.out";
    FILE *in = fopen(inFileName, "r");
    if (in == NULL) {
        printf("Cannot open %s.\n", inFileName);
        return 1;
    }
    FILE *out = fopen(outFileName, "w");
    int n, m;
    fscanf(in, "%d %d", &n, &m);
    int *days = (int *) malloc((n + 1) * sizeof(int));
    for (int i = 1; i <= n; ++i) {
        fscanf(in, "%d", days + i);
    }
    for (int i = 0; i < m; ++i) {
        int op, num1, num2;
        fscanf(in, "%d %d %d", &op, &num1, &num2);
        if (op) {
            fprintf(out, "%d\n", get1(days, num1, num2));
        } else {
            update1(days, num1, num2);
        }
    }

    fclose(in);
    fclose(out);
    return 0;
}