#include <bits/stdc++.h>
using namespace std;
main()
{
long n,cs=1;
while(cin>>n)
{
long i,m,indegree[200]={0},cnt=1,vis[200]={0},j,k;
string s,s1;
queue<long>q;
map<long,string>mp1;
map<string,long>mp;
vector<long>vec[200];
vector<long>vec1;
for(i=1;i<=n;i++)
{
cin>>s;
mp[s]=cnt;
mp1[cnt]=s;
cnt++;
}
cin>>m;
for(i=1;i<=m;i++)
{
cin>>s>>s1;
vec[mp[s]].push_back(mp[s1]);
indegree[mp[s1]]++;
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
if(indegree[j]==0&&vis[j]==0)
{
vis[j]=1;
vec1.push_back(j);
for(k=0;k<vec[j].size();k++)
{
long u=vec[j][k];
indegree[u]--;
}
break;
}
}
printf("Case #%ld: Dilbert should drink beverages in this order:",cs++);
for(i=0;i<vec1.size();i++)
{
cout<<" "<<mp1[vec1[i]];
}
cout<<"."<<endl<<endl;
for(i=1;i<=n;i++)
{
vec[i].clear();
vis[i]=0;
}
mp.clear();
mp1.clear();
}
}
using namespace std;
main()
{
long n,cs=1;
while(cin>>n)
{
long i,m,indegree[200]={0},cnt=1,vis[200]={0},j,k;
string s,s1;
queue<long>q;
map<long,string>mp1;
map<string,long>mp;
vector<long>vec[200];
vector<long>vec1;
for(i=1;i<=n;i++)
{
cin>>s;
mp[s]=cnt;
mp1[cnt]=s;
cnt++;
}
cin>>m;
for(i=1;i<=m;i++)
{
cin>>s>>s1;
vec[mp[s]].push_back(mp[s1]);
indegree[mp[s1]]++;
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
if(indegree[j]==0&&vis[j]==0)
{
vis[j]=1;
vec1.push_back(j);
for(k=0;k<vec[j].size();k++)
{
long u=vec[j][k];
indegree[u]--;
}
break;
}
}
printf("Case #%ld: Dilbert should drink beverages in this order:",cs++);
for(i=0;i<vec1.size();i++)
{
cout<<" "<<mp1[vec1[i]];
}
cout<<"."<<endl<<endl;
for(i=1;i<=n;i++)
{
vec[i].clear();
vis[i]=0;
}
mp.clear();
mp1.clear();
}
}
কোন মন্তব্য নেই:
একটি মন্তব্য পোস্ট করুন