| ||||||||||
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<string.h> void main() { int com[102][3],dis[101][2],num,n,d,i,op,con1,con2,sour,up,flag; char s[6]; scanf("%d%d",&n,&d); for(i=1;i<=n;i++) { scanf("%d%d\n",&com[i][1],&com[i][2]); com[i][0]=0; } while(scanf("%s",s)!=EOF) { if(strcmp(s,"O")==0) { scanf("%d",&op); com[op][0]=1; } else { scanf("%d%d",&con1,&con2); if(com[con1][0]==0||com[con2][0]==0) printf("FAIL\n"); else if(((com[con1][1]-com[con2][1])* (com[con1][1]-com[con2][1])+ (com[con1][2]-com[con2][2])* (com[con1][2]-com[con2][2]))<=d*d) printf("SUCCESS\n"); else { for(i=1;i<=n;i++) { dis[i][0]=0; dis[i][1]=0; } dis[con1][0]=1; num=1; up=2; dis[num][1]=con1; flag=1; while(flag==1&&dis[num][1]!=0) { sour=dis[num][1]; for(i=1;i<=n;i++) { if(dis[i][0]==0&&com[i][0]==1&& ((com[sour][1]-com[i][1])* (com[sour][1]-com[i][1])+ (com[sour][2]-com[i][2])* (com[sour][2]-com[i][2]))<=d*d) { if(i==con2) { flag=0; break; } dis[i][0]=1; dis[up][1]=i; up++; } } num++; } if(flag==0) printf("SUCCESS\n"); else printf("FAIL\n"); } } } } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator