标签:problem tor present iss not har one square logs
Time Limit: 1000MS | Memory Limit: 10000K | |
Total Submissions: 19642 | Accepted: 5376 |
Description
Input
Output
Sample Input
4 5 825 6725 6244865
Sample Output
0 0 0.5 2
Source
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <vector> using namespace std; typedef long long ll; const int N=1e6+5; const double eps=1e-8; inline int read(){ char c=getchar();int x=0,f=1; while(c<‘0‘||c>‘9‘){if(c==‘-‘)f=-1; c=getchar();} while(c>=‘0‘&&c<=‘9‘){x=x*10+c-‘0‘; c=getchar();} return x*f; } inline int sgn(double x){ if(abs(x)<eps) return 0; else return x<0?-1:1; } struct Vector{ ll x,y; Vector(ll a=0,ll b=0):x(a),y(b){} }; typedef Vector Point; ll Cross(Vector a,Vector b){ return a.x*b.y-a.y*b.x; } char s[N]; int n, dx[11]={0,-1, 0, 1,-1, 0, 1,-1, 0, 1}, dy[11]={0, 1, 1, 1, 0, 0, 0,-1,-1,-1}; Point last,now; int main(int argc, const char * argv[]) { int T=read(); while(T--){ ll area=0; scanf("%s",s+1); n=strlen(s+1);n-=2; if(n<=0){puts("0");continue;} ll x=0,y=0; last=Point(x,y); for(int i=1;i<=n;i++){ x+=dx[s[i]-‘0‘];y+=dy[s[i]-‘0‘]; now=Point(x,y); if(i!=1) area+=Cross(now,last); last=now; } if(area<0) area=-area; if(area%2==0) printf("%lld\n",area/2); else printf("%lld.5\n",area/2); } return 0; }
标签:problem tor present iss not har one square logs
原文地址:http://www.cnblogs.com/candy99/p/6354200.html