Cod sursa(job #2718463)

Utilizator ptlsebiptl sebi ptlsebi Data 8 martie 2021 19:20:58
Problema Aria Scor 0
Compilator c-64 Status done
Runda Arhiva educationala Marime 1.43 kb
#include <stdio.h>
#include <stdint.h>

void read_int32_t(FILE *__restrict stream, int32_t *__restrict nr) {
    uint8_t ch;
    *nr = 0;
    uint8_t neg = 0;
    ch = fgetc(stream);
    if (ch == '-') {
        neg = 1;
    } else if ('0' <= ch && ch <= '9') {
        *nr = ch - '0';
    } else {
        if (ch == '\r') {
            fgetc(stream);
        }
        return;
    }
    while ((ch = fgetc(stream)) && ('0' <= ch && ch <= '9')) {
        *nr *= 10;
        *nr += ch - '0';
    }
    if (neg) {
        *nr = -*nr;
    }
    if (ch == '\r') {
        fgetc(stream);
    }
}

int main() {
    int32_t n;
    int64_t sum = 0;
    {
        FILE *__restrict in = fopen("aria.in", "r");

        read_int32_t(in, &n);
        {
            int32_t i;
            int32_t sx, sy;
            int32_t y1, y2;
            int32_t x1, x2;
            read_int32_t(in, &sx);
            read_int32_t(in, &sy);
            x2 = sx;
            y2 = sy;
            for (i = 1; i < n; ++i) {
                x1 = x2;
                y1 = y2;
                read_int32_t(in, &x2);
                read_int32_t(in, &y2);
                sum += (y1 + y2) * (x2 - x1);
            }
            sum += (y2 + sy) * (x2 - sx);
        }

        fclose(in);
    }
    if (sum < 0) {
        sum = -sum;
    }
    {
        FILE *__restrict out = fopen("aria.out", "w");

        fprintf(out, "%0.5f", (double) sum / 2);

        fclose(out);
    }
    return 0;
}