Pagini recente » Cod sursa (job #3223392) | Cod sursa (job #1230087) | Cod sursa (job #1020472) | Cod sursa (job #1914928) | Cod sursa (job #1278930)
#include<fstream>
#include<iomanip>
using namespace std;
int n, i, ii, j, poz, semn, cif, nr, nrz;
char ch[15];
struct cub{
int x;
int y;
};
double s;
cub zero, v[100003];
double det(cub a, cub b, cub c){
return ((b.x-a.x)*(c.y-a.y)-(c.x-a.x)*(b.y-a.y))/2.0;
}
ifstream in("aria.in");
ofstream out("aria.out");
int main(){
in>>n;
in.get();
for(ii=1; ii<=n; ii++){
in>>ch;
poz=0;
nr=0;
semn=1;
cif=1;
if(ch[0]=='-'){
poz++;
semn=-1;
}
for(i=poz; ch[i]>='0' && ch[i]<='9'; i++)
nr=nr*10+(ch[i]-'0');
for(j=i+1; ch[j]>='0' && ch[j]<='9'; j++){
nrz=nrz*10+(ch[j]-'0');
cif*=10;
}
nrz/=cif;
nr+=nrz;
nr*=semn;
v[ii].x=nr;
in.get();
in>>ch;
poz=0;
nr=0;
semn=1;
cif=1;
if(ch[0]=='-'){
poz++;
semn=-1;
}
for(i=poz; ch[i]>='0' && ch[i]<='9'; i++)
nr=nr*10+(ch[i]-'0');
for(j=i+1; ch[j]>='0' && ch[j]<='9'; j++){
nrz=nrz*10+(ch[j]-'0');
cif*=10;
}
nrz/=cif;
nr+=nrz;
nr*=semn;
v[ii].y=nr;
in.get();
}
v[0]=v[n];
for(i=0; i<n; i++)
s+=det(zero, v[i], v[i+1]);
out<<setprecision(6)<<fixed<<s;
return 0;
}