রবিবার, ২ এপ্রিল, ২০১৭

UVA 11060 - Beverages

#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();
    }
}

কোন মন্তব্য নেই:

একটি মন্তব্য পোস্ট করুন

Factorization with prime Sieve

vector <int> prime; char sieve[1000009]; int N=1000009; void primeSieve ( ) { sieve[0] = sieve[1] = 1; prime.push_back(2); ...