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 |
那位有此题的测试数据,可不可以让我看一下,我做的总是wa,而题上的测试数据,在我的代码中运行有总是对的。我的代码如下,如果那位高人看到,可以帮忙指点以下!万分感谢!#include<stdio.h> #include<math.h> #include<algorithm> #define MAX 501 using namespace std; typedef struct Node { int k1; int k2; }xielu; bool mycmp(const Node & a, const Node & b) { return a.k1<b.k1; } int main() { int tt; Node data[MAX]; scanf("%d",&tt); while(tt) { int bx,by,aa; int cx[MAX],cy[MAX],r[MAX]; int a[MAX],b[MAX]; scanf("%d%d",&bx,&by); int i,j; for(i=1;i<=tt;i++) { scanf("%d%d%d",&cx[i],&cy[i],&r[i]); aa=cx[i]=cx[i]-bx; cx[i]=abs(cx[i]); cy[i]=by-cy[i]; if(cx[i]==r[i]) { a[i]=bx*100; b[i]=(int)(bx*100.0-2*aa*cy[i]*by*100.0/(r[i]*r[i]-cy[i]*cy[i])+0.5); if(a[i]<b[i]) { data[i].k1=a[i]; data[i].k2=b[i];} else { data[i].k2=a[i]; data[i].k1=b[i];} } else { a[i]=(int)(bx*100.0-2*(cx[i]*cx[i]-r[i]*r[i])*by*100.0/(-2*aa*cy[i]+2*sqrt(cx[i]*cx[i]*cy[i]*cy[i]-(cy[i]*cy[i]-r[i]*r[i])*(cx[i]*cx[i]-r[i]*r[i])))+0.5); b[i]=(int)(bx*100.0-2*(cx[i]*cx[i]-r[i]*r[i])*by*100.0/(-2*aa*cy[i]-2*sqrt(cx[i]*cx[i]*cy[i]*cy[i]-(cy[i]*cy[i]-r[i]*r[i])*(cx[i]*cx[i]-r[i]*r[i])))+0.5); if(a[i]<b[i]) { data[i].k1=a[i]; data[i].k2=b[i];} else { data[i].k2=a[i]; data[i].k1=b[i];} } } sort(data,data+tt,mycmp); for(i=2,j=1;i<=tt;i++) { if(data[i-1].k2<data[i].k1) { printf("%.2f %.2f\n",data[j].k1/100.0,data[i-1].k2/100.0);j=i;} } printf("%.2f %.2f\n",data[j].k1/100.0,data[i-1].k2/100.0); printf("\n"); scanf("%d",&tt); } return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator