Pagini recente » Cod sursa (job #927245) | Cod sursa (job #2594242) | Cod sursa (job #1042722) | Cod sursa (job #522735) | Cod sursa (job #2392200)
#include<iostream>
#include<fstream>
#include<iomanip>
const int M=20000000;
int n,i,e,f[]={1,10,100,1000,10000,100000,1000000};
double x,y,a,b,c,d;
long double s;
char q[M];
inline int B()
{
int s=0;
for(;q[e]<'0'||q[e]>'9';e++);
for(;q[e]>='0'&&q[e]<='9';e++)
s=s*10+q[e]-'0';
return s;
}
inline double C()
{
int s=1,v=-1;
double x=0;
for(;(q[e]<'0'||q[e]>'9')&&q[e]!='-'&&q[e]!='.';e++);
for(;(q[e]>='0'&&q[e]<='9')||q[e]=='-'||q[e]=='.';e++)
if(q[e]=='-')
s=-1;
else if(q[e]=='.')
v=0;
else if(v==-1)
x=x*10+q[e]-'0';
else
x=x+1.0*(q[e]-'0')/f[++v];
return x*s;
}
int main()
{
ifstream f("aria.in");
ofstream g("aria.out");
f.read(q,M),n=B(),x=C(),y=C(),a=c=x,b=d=y;
for(i=0;i<n-1;i++)
x=C(),y=C(),s+=(long double)a*y-(long double)x*b,a=x,b=y;
s+=(long double)a*d-(long double)b*c,s/=2;
g<<setprecision(6)<<fixed<<s;
}
/*#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
int main()
{
ifstream fin ("aria.in");
ofstream fout ("aria.out");
int n;
double xinit,yinit,xant,yant,x,y;
long double arie=0;
fin>>n>>x>>y;
xinit=xant=x;
yinit=yant=y;
for (int i=2;i<=n;++i)
{
fin>>x>>y;
arie+=(long double)xant*y-(long double)x*yant;
xant=x;
yant=y;
}
arie+=(long double)xant*yinit-(long double)xinit*yant;
arie/=2;
fout<<setprecision(6)<<fixed<<arie;
return 0;
}
*/