Pagini recente » Cod sursa (job #915584) | Borderou de evaluare (job #3136179) | Cod sursa (job #454260) | Cod sursa (job #2236905) | Cod sursa (job #1833122)
#include <stdio.h>
#include <math.h>
struct Point{
double x;
double y;
}vertices[100000];
double CrossProduct(struct Point a, struct Point b){
return a.x*b.y - a.y*b.x;
}
double PolygonArea(struct Point vertices[], int N){
double sum = 0.0;
int i;
for(i=0; i<N; i++){
sum += CrossProduct(vertices[i], vertices[(i+1)%N]);
}
return fabs(sum)/2.0;
}
int main(){
FILE *file1, *file2;
int N, i;
file1 = fopen("aria.in", "r");
file2 = fopen("aria.out", "w");
fscanf(file1, "%d", &N);
for(i=0; i<N; i++){
fscanf(file1, "%lf", &vertices[i].x);
fscanf(file1, "%lf", &vertices[i].y);
}
fprintf(file2, "%.5lf", PolygonArea(vertices, N));
return 0;
}