Pagini recente » Cod sursa (job #824511) | Cod sursa (job #299913) | Cod sursa (job #827608) | Cod sursa (job #2625257) | Cod sursa (job #2360560)
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
FILE *f,*g;
struct bla
{
double x,y;
}v[100002];
bool how(bla A, bla B)
{
if(A.x!=B.x)
return (A.x<B.x);
return (A.y<B.y);
}
int main()
{
f=fopen("aria.in","r");
g=fopen("aria.out","w");
int n;
double arie=0;
fscanf(f,"%d",&n);
///punctele sunt deja date in ordine trigonometrica
for(int i=1;i<=n;++i)
fscanf(f,"%lf %lf",&v[i].x,&v[i].y);
///pt ca sunt in ordine trigonometrica semnul ariei este acleasi la toate triunghurile
v[n+1]=v[1];
for(int i=2;i<=n+1;++i)
arie=arie+v[i-1].x*v[i].y-v[i].x*v[i-1].y;
if(arie<0)
arie=(-arie);
fprintf(g,"%0.1lf",arie/2);
fclose(f);
fclose(g);
return 0;
}