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 |
高手帮帮忙!!!我的程序哪里错了阿!!!总是wrong#include<iostream> #include<cmath> using namespace std; #define pi 3.1415926 int result[100]; int flag = 0; int main() { int tranX, tranY; int N, i; double r; while(true) { int tot = 0; double proA = 0, A; cin>>tranX>>tranY; cin>>r; if(r<= 0) break; cin>>N; int* X = new int [N]; int* Y = new int [N]; for(i = 0; i < N; i++) cin>>X[i]>>Y[i]; while(true) { double k = 0; double tempA = 0; int tempi= 0; int jud = 0; A = pi+1; for(i = 0; i < N; i++) { if(X[i] == tranX) tempA = pi/2; else { k = (double)(Y[i]-tranY)/(X[i]-tranX); if(k >= 0) tempA = atan(k); else tempA = pi + atan(k); } if(A>tempA && tempA>proA) { A = tempA; tempi = i; jud = 1; } } if(jud == 0) break; proA = A; int remNum = 0; for(i = 0; i < N; i++) { double isOver = (tranX - X[i])*(Y[tempi]-tranY)-(X[tempi]-tranX)*(tranY-Y[i]); double disT = sqrt(pow(X[i]-tranX, 2) + pow(Y[i]-tranY, 2)); if(isOver>=0&&disT<=r) remNum++; } if(tot < remNum) tot = remNum; } result[flag] = tot; flag++; delete [] X; delete [] Y; } for(i = 0; i < flag;i++) cout<<result[i]<<endl; return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator