比赛 |
顾研NOIP2011模拟赛 |
评测结果 |
TWWTTTTTTT |
题目名称 |
旅游电车 |
最终得分 |
0 |
用户昵称 |
Truth.Cirno |
运行时间 |
8.061 s |
代码语言 |
C++ |
内存使用 |
27.68 MiB |
提交时间 |
2012-10-18 10:44:26 |
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <memory.h>
using namespace std;
short waynum[5010],wayto[5010][60];
bool used[5010],map[5010][5010];
void fillmap(int sou,int pos)
{
if (sou!=pos)
map[sou][pos]=true;
int i;
for (i=0;i<waynum[pos];i++)
{
if (!used[wayto[pos][i]])
{
used[wayto[pos][i]]=true;
fillmap(sou,wayto[pos][i]);
used[wayto[pos][i]]=false;
}
}
}
int main(void)
{
freopen("buss.in","r",stdin);
freopen("buss.out","w",stdout);
int i,j,n,m,a,b;
bool flag;
while (scanf("%d",&n))
{
if (n==0)
break;
scanf("%d",&m);
memset(waynum,0,sizeof(waynum));
memset(wayto,0,sizeof(wayto));
memset(map,0,sizeof(map));
for (i=1;i<=m;i++)
{
cin>>a>>b;
wayto[a][waynum[a]++]=b;
}
for (i=1;i<=n;i++)
{
memset(used,0,sizeof(used));
used[i]=true;
fillmap(i,i);
}
for (i=1;i<=n;i++)
{
flag=true;
for (j=1;j<=n;j++)
{
if (i==j)
continue;
if (map[i][j]!=map[j][i])
{
flag=false;
break;
}
}
if (flag)
cout<<i<<' ';
}
cout<<endl;
}
return(0);
}