记录编号 | 433483 | 评测结果 | AAAAA | ||
---|---|---|---|---|---|
题目名称 | 多边形面积 | 最终得分 | 100 | ||
用户昵称 | 是否通过 | 通过 | |||
代码语言 | 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(){;}