#include<cstdio>
#include<iostream>
#include<cstring>
#include<queue>
#include<vector>
using namespace std;
int main()
{
//freopen("c:\\temp\\in.txt","r",stdin);
vector<int>graph[21];
int i=1;
int number,t=1;
while(scanf("%d",&number)==1)
{
for(int j=1;j<=number;j++)
{
int c;
scanf("%d",&c);
graph[i].push_back(c);
graph[c].push_back(i);
}
i++;
if(i==20)
{
int query;i=1;
scanf("%d",&query);
printf("Test Set #%d\n",t++);
for(int j=1;j<=query;j++)
{
int source,destination;
int visit[25];
memset(visit,0,sizeof visit);
scanf("%d %d",&source,&destination);
queue<int>q;
q.push(source);
visit[source]=1;
while(!q.empty())
{
int pop=q.front();q.pop();
if(pop==destination)break;
for(int k=0;k<graph[pop].size();k++)
{
int v=graph[pop][k];
if(visit[v]==0)
{
visit[v]=1+visit[pop];
q.push(v);
}
}
}
printf("%2d to %2d: %d\n",source,destination,visit[destination]-1);
}
printf("\n");
for(int i=1;i<=20;i++)graph[i].clear();
}
}
return 0;
}
বৃহস্পতিবার, ২ জানুয়ারী, ২০১৪
Solution code of uva 567-Risk
Labels:
uva solution
এতে সদস্যতা:
মন্তব্যগুলি পোস্ট করুন (Atom)
0 comments:
একটি মন্তব্য পোস্ট করুন