Pagini recente » Borderou de evaluare (job #2021124) | Borderou de evaluare (job #1796632) | Borderou de evaluare (job #2078404) | Borderou de evaluare (job #1258300) | Cod sursa (job #1547419)
#include <stdio.h>
#define MAX_N 100000
#define ABS(X) ((X) < 0 ? -(X) : (X))
typedef struct {
int x, y;
} Point;
Point v[MAX_N];
// | A.x A.y 1 |
// | B.x B.y 1 |
// | C.x C.y 1 |
__inline__ long long determinant( Point A, Point B, Point C ) {
return A.x * B.y + B.x * C.y + C.x * A.y
-C.x * B.y - A.x * C.y - A.y * B.x;
}
int main( void ) {
FILE *fin, *fout;
int N, i;
long long area;
fin = fopen( "aria.in", "r" );
fscanf( fin, "%d", &N );
for ( i = 0; i < N; i++ ) {
fscanf( fin, "%d%d", &v[i].x, &v[i].y );
}
fclose( fin );
area = 0LL;
for ( i = 2; i < N; i++ ) {
area += determinant( v[0], v[i-1], v[i] );
}
fout = fopen( "aria.out", "w" );
fprintf( fout, "%.5f\n", 0.5 * abs( area ) );
fclose( fout );
return 0;
}