| ||||||||||
| 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 "iostream"
#include "memory"
#include "math.h"
using namespace std;
const bool TRUE=1;
const bool FALSE=0;
int coord[1002][2];
int group[1002];
int N,D;
float dis2(int p,int q)
{
return (coord[p][0]-coord[q][0])*(coord[p][0]-coord[q][0])+(coord[p][1]-coord[q][1])*(coord[p][1]-coord[q][1]);
}
void merge(int p)
{
for(int i=1;i<=N;i++)
{
if(i!=p&&group[i])
if(group[i]!=group[p]&&dis2(p,i)<=D*D)
{
int group_i=group[i];
for(int j=1;j<=N;j++)
if(group[j]==group_i)
group[j]=group[p];
}
}
}
bool find(int p,int q)
{
if(group[p]==0||group[q]==0)
return FALSE;
return group[p]==group[q]?TRUE:FALSE;
}
void main()
{
cin>>N>>D;
memset(group,0,sizeof(group));
for(int i=1;i<=N;i++)
cin>>coord[i][0]>>coord[i][1];
char s;
int p,q;
while(scanf("%c",&s)!=EOF)
{
if(s=='O')
{
cin>>p;
group[p]=p;
merge(p);
}
else if(s=='S')
{
cin>>p>>q;
if(find(p,q))
cout<<"SUCCESS"<<endl;
else cout<<"FAIL"<<endl;
}
}
cout<<"main over";
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator