Pagini recente » Cod sursa (job #2430108) | Cod sursa (job #1046134) | infoarena - comunitate informatica, concursuri de programare | Cod sursa (job #2135994) | Cod sursa (job #921118)
Cod sursa(job #921118)
#include <stdio.h>
typedef struct _punct{
int x,y;
} punct;
int n;
punct p[100000+1];
void read_data(){
FILE *fIn;
int i;
fIn = fopen("aria.in", "r");
fscanf(fIn, "%d", &n);
for(i = 1; i <=n ; i++)
fscanf(fIn, "%d %d", &(p[i].x), &(p[i].y));
fclose(fIn);
}
void aranjare(){
int i,x_min = 0,y_min = 0;
for(i = 1; i <= n; i++){
if(p[i].x < x_min)
x_min = p[i].x;
if(p[i].y < y_min)
y_min = p[i].y;
}
if(x_min < 0)
x_min = x_min * -1;
else
x_min = 0;
if(y_min < 0)
y_min = y_min * -1;
else
y_min = 0;
for(i = 1; i <= n; i++){
p[i].x += x_min;
p[i].y += y_min;
}
}
int main(){
read_data();
aranjare();
p[++n] = p[1];
double aria = 0.0;
int i;
for(i = 1; i < n; i++){
aria += (p[i+1].x - p[i].x) * (p[i].y + p[i+1].y) / 2;
//printf("%f %d %d %d %d\n", aria, p[i].x, p[i].y, p[i+1].x, p[i+1].y);
}
aria = aria * -1;
FILE *fOut = fopen("aria.out", "w");
fprintf(fOut, "%f\n", aria);
fclose(fOut);
return 0;
}