Pagini recente » Cod sursa (job #1010101) | Cod sursa (job #2672878) | Cod sursa (job #168523) | Cod sursa (job #759091) | Cod sursa (job #2507991)
#include <bits/stdc++.h>
#define st first
#define nd second
#define pb push_back
using namespace std;
typedef long long ll;
int n, m, i, j;
const int N=100005;
FILE *fin=fopen("aria.in","r");
FILE *fout=fopen("aria.out","w");
pair<long double, long double> v[N];
long double ans;
long double aria(double xa, double ya, double xb, double yb, double xc, double yc)
{
long double m[][5]={{xa,ya,1},{xb,yb,1},{xc,yc,1}};
long double S;
S=m[0][0]*m[1][1]*m[2][2]+m[0][1]*m[1][2]*m[2][0]+m[1][0]*m[2][1]*m[0][2];
S-=m[0][2]*m[1][1]*m[2][0]+m[2][1]*m[1][2]*m[0][0]+m[1][0]*m[0][1]*m[2][2];
return S/2;
}
int main()
{
fscanf(fin,"%d",&n);
for(i=1;i<=n;i++)
fscanf(fin,"%LF%LF",&v[i].st,&v[i].nd);
for(i=2;i<n;i++)
ans+=aria(v[1].st,v[1].nd,v[i].st,v[i].nd,v[i+1].st,v[i+1].nd);
fprintf(fout,"%0.6LF ",ans);
}