Cod sursa(job #3368793)

Utilizator Marocanu07wee weew Marocanu07 Data 15 octombrie 2026 19:29:53
Problema Aria Scor 70
Compilator c-64 Status done
Runda Arhiva educationala Marime 1.06 kb
#include <stdio.h>
#include <math.h> // Adăugat pentru funcția fabs(), în caz că aria dă cu minus din cauza ordinii punctelor

int main() {
    // Deschide aria.in pentru citire
    freopen("aria.in", "r", stdin);
    // Deschide aria.out pentru scriere
    freopen("aria.out", "w", stdout);

    int n; // N trebuie să fie INT, nu float
    double x1, x2, y1, y2, arie = 0, cx, cy; // Schimbat din float în double pentru precizie maximă

    // Citim separat numărul întreg N, apoi primele coordonate reale
    if (scanf("%d", &n) != 1) return 0;
    if (scanf("%lf%lf", &x1, &y1) != 2) return 0;

    cx = x1; 
    cy = y1;

    for (int i = 1; i < n; i++) {
        scanf("%lf%lf", &x2, &y2); // %lf este specificatorul de citire pentru double
        arie += x1 * y2 - x2 * y1;

        x1 = x2; 
        y1 = y2;
    }

    arie += x1 * cy - cx * y1;

    // fabs() asigură că aria este pozitivă
    // %.5lf forțează afișarea cu exact 5 zecimale, conform cerinței
    printf("%.5lf\n", fabs(arie) / 2.0);
   
    return 0;
}