记录编号 |
433483 |
评测结果 |
AAAAA |
题目名称 |
多边形面积 |
最终得分 |
100 |
用户昵称 |
Hzoi_Mafia |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.000 s |
提交时间 |
2017-08-05 16:23:54 |
内存使用 |
0.00 MiB |
显示代码纯文本
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
inline int read(){
int sum(0),f(1);
char ch(getchar());
for(;ch<'0'||ch>'9';ch=getchar())
if(ch=='-')
f=-1;
for(;ch>='0'&&ch<='9';sum=sum*10+(ch^48),ch=getchar());
return sum*f;
}
struct node{
double x,y;//一定要用double,虽然全是int,但会炸精度
node(double x=0,double y=0):x(x),y(y){}
node(const node &a,const node &b):x(b.x-a.x),y(b.y-a.y){}
node operator-()const{
return node(-x,-y);
}
node operator+(const node &a){
return node(x+a.x,y+a.y);
}
node operator-(const node &b){
return *this+(-b);
}
}a[101];
inline double cross(const node &a,const node &b){//叉积
return a.x*b.y-b.x*a.y;
}
inline double area(const node &a,const node &b,const node &c){//三角形面积
return cross(node(a,b),node(a,c))/2.0;
}
int n;
double ans(0);
inline int gg(){
freopen("areas.in","r",stdin);
freopen("areas.out","w",stdout);
n=read();
for(int i=1;i<=n;i++)
a[i].x=read(),a[i].y=read();
for(int i=2;i<n;i++)
ans+=area(a[1],a[i],a[i+1]);
printf("%.0lf",ans);
return 0;
}
int K(gg());
int main(){;}