| ||||||||||
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啊#include<stdio.h> #include<string.h> #include<math.h> #define maxn 1005 #define ee 1e-10 int father[maxn]; __int8 mark[maxn]; int rank[maxn]; int site[maxn][2]; int findset(int u) {return (father[u]==0)?u:(father[u]=findset(father[u])); } void merge(int i,int j) {i=findset(i); j=findset(j); if(rank[i]>rank[j]) father[j]=i; else if(rank[i]<rank[j]) father[i]=j; else { father[i]=j; ++rank[j]; } } double dis(int a[2],int b[2]) {return sqrt((a[0]-b[0])*(a[0]-b[0])+(a[1]-b[1])*(a[1]-b[1])); } int zero(double d) {if(fabs(d)<ee) return 0; return (d>0)?1:-1; } int main() {int n,d; int x,y; int i,j; int p,q; char ch; memset(father,0,sizeof(father)); memset(mark,0,sizeof(mark)); memset(rank,0,sizeof(rank)); // freopen("file.in","r",stdin); scanf("%d%d",&n,&d); for(i=1;i<=n;i++) scanf("%d%d",&site[i][0],&site[i][1]); while(getchar(),scanf("%c",&ch)!=EOF) {if(ch=='O'){ scanf("%d",&p); mark[p]=1; for(j=1;j<=n;j++) if(p!=j && mark[j]) if(zero(dis(site[p],site[j])-d)<=0){ merge(p,j); } } if(ch=='S'){ scanf("%d%d",&p,&q); if(findset(p)==findset(q)) printf("SUCCESS\n"); else printf("FAIL\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