Cod sursa(job #2392163)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 29 martie 2019 18:55:06
Problema Aria Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include<cstdio>
const int M=20000000;
int n,i,e,f[]={1,10,100,1000,10000,100000,1000000};
double x[100001],y[100001];
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()
{
    freopen("aria.in","r",stdin),freopen("aria.out","w",stdout),fread(q,1,M,stdin),n=B();
    for(i=0;i<n;i++)
        x[i]=C(),y[i]=C();
    for(x[n]=x[0],y[n]=y[0],i=0;i<n;i++)
        s=(long double)(s+x[i]*y[i+1]-x[i+1]*y[i]);
    printf("%.5Lf",s/2);
}