Pagini recente » Cod sursa (job #1094857) | Cod sursa (job #24857) | Rating Mihnea Velcea (Velcq) | Cod sursa (job #2990942) | Cod sursa (job #969698)
Cod sursa(job #969698)
/**
1 p1.x p1.y
1 p2.x p2.y
1 p3.x p3.y
return p2.x*p3.y+p3.x*p1.y+p1.x*p2.y-p2.x*p1.y-p3.x*p2.y-p3.y*p1.x;
*/
#include <cstdio>
#include <algorithm>
#define pdd pair<double,double>
#define x first
#define y second
#define mp make_pair
FILE *f=fopen("aria.in","r");
FILE *g=fopen("aria.out","w");
using namespace std;
double abso(double x){if(x>0)return x;return -x;}
double arie(pdd p1,pdd p2,pdd p3)
{
return p2.x*p1.y+p3.x*p2.y+p3.y*p1.x-p1.x*p2.y-p2.x*p3.y-p3.x*p1.y;
}
int n;
int main()
{
pdd vf1,vf2,vf3;
double p1,p2,AR=0;
fscanf(f,"%d",&n);
fscanf(f,"%lf%lf",&p1,&p2);
vf1=mp(p1,p2);
fscanf(f,"%lf%lf",&p1,&p2);
vf2=mp(p1,p2);
for(int i=3;i<=n;++i)
{
fscanf(f,"%lf%lf",&p1,&p2);
vf3=mp(p1,p2);
AR+=abso(arie(vf1,vf2,vf3));
vf1=vf2;
vf2=vf3;
}
fprintf(g,"%.5lf",AR/2.0);
return 0;
}