Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<iostream>
- #include<vector>
- #include<queue>
- using namespace std;
- int main()
- {
- int i,j,test=0,garbage,x;
- FILE *fp=fopen("output.txt","w");
- while(scanf("%d",&garbage)!=EOF)
- {
- vector<int>vv[25];
- for(j=0;j<garbage;j++)
- {
- scanf("%d",&x);
- vv[1].push_back(x);
- vv[x].push_back(1);
- }
- for(i=2;i<20;i++)
- {
- scanf("%d",&j);
- for(int jj=0;jj<j;jj++)
- {
- scanf("%d",&x);
- vv[i].push_back(x);
- vv[x].push_back(i);
- }
- }
- test++;
- int t,start,End;
- scanf("%d",&t);
- //printf("Test Set #%d\n",test);
- fprintf(fp,"Test Set #%d\n",test);
- while(t--)
- {
- scanf("%d %d",&start,&End);
- bool check[25];
- for(i=0;i<25;i++) check[i]=false;
- int level[25];
- queue<int>qq;
- qq.push(start);
- level[start]=0;
- check[start]=true;
- while(!qq.empty())
- {
- x=qq.front();
- qq.pop();
- for(i=0;i<vv[x].size();i++)
- {
- if(!check[vv[x][i]]){
- qq.push(vv[x][i]);
- check[vv[x][i]]=true;
- level[vv[x][i]]=level[x]+1;
- }
- }
- }
- //printf("%d to %d: %d\n",start,End,level[End]);
- fprintf(fp,"%d to %d: %d\n",start,End,level[End]);
- }
- fprintf(fp,"\n");
- }
- fclose(fp);
- re
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement