Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:who can tell me what is wrong for my code?In Reply To:who can tell me what is wrong for my code? Posted by:galois_godel at 2004-06-27 16:57:50 Yes的条件是 1.浆果不在原点。 2.过中心的直线不能过两个浆果。 3.浆果之间的最大夹角大于120度或两两之间的夹角等于120度。 要用long long来计算。 > #include<iostream> > #include<cstdio> > #include<cmath> > #include<cassert> > using namespace std; > int x[5],y[5]; > > int judge() > { > int i,j; > > for(i=0;i<3;i++) > { > if(x[i]==0 && y[i]==0)return 0; > > } > for(i=0;i<3;i++) > { > j=(i+1)%3; > int m1=(x[i]*x[j]+y[i]*y[j]); > int m2=(x[i]*y[j]-x[j]*y[i]); > if(m2==0 && m1<0)return 0; > } > > for(i=0;i<3;i++) > { > j=(i+1)%3; > int mul=(x[i]*x[j]+y[i]*y[j]); > if(mul>=0)continue; > mul=mul*mul; > int d1=(x[i]*x[i]+y[i]*y[i]); > int d2=(x[j]*x[j]+y[j]*y[j]); > if(mul*4>d1*d2)return 1; > } > > > > > return 0; > > } > > > > int main() > { > int r; > > int cas; > char temp[100]; > scanf("%d",&cas); > while(cas--) > { > scanf("%s",temp); > assert(strlen(temp)<3); > sscanf(temp,"%d",&r); > int i; > for(i=0;i<3;i++)scanf("%d %d",&x[i],&y[i]); > > if(judge()) > { > printf("Yes\n"); > } > else > { > printf("No\n"); > } > } > > return 0; > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator