Cod sursa(job #1999759)

Utilizator RRomaniucRomaniuc Radu Andrei RRomaniuc Data 12 iulie 2017 01:01:50
Problema Aria Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
//
//  main.cpp
//  ariePoligon
//
//  Created by Radu Romaniuc on 03/07/2017.
//  Copyright © 2017 Romaniuc Radu. All rights reserved.
//

#include <stdio.h>
struct Punct
{
    double x;
    double y;
};
int main()
{
    int nr_puncte;
    Punct puncte[100000];
    
    FILE *input = fopen("aria.in", "r");
    fscanf(input, "%d", &nr_puncte);
    
    int translatare = 0;
    
    for(int i = 0; i < nr_puncte; i++)
    {
        fscanf(input, "%lf %lf", &puncte[i].x, &puncte[i].y);
        if(puncte[i].x == 0 && puncte[i].y == 0) translatare = 1;
    }
    
    double aria = 0;
    
    int i;
    for(i = 0; i < nr_puncte - 1; i++)
        aria += 0.5 * (puncte[i].x * puncte[i + 1].y - puncte[i + 1].x * puncte[i].y);
    
    aria += 0.5 *
    ((puncte[i].x + translatare) * (puncte[0].y + translatare) - (puncte[0].x + translatare) * (puncte[i].y + translatare));
    
    FILE *output = fopen("aria.out", "w");
    fprintf(output, "%.5f", aria);

    return 0;
}