Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Problem ID : LightOJ 1111 - Best Picnic Ever
- Author : Kaidul Islam
- */
- #include<iostream>
- #include<vector>
- #include<queue>
- #include<cstring>
- using namespace std;
- int main()
- {
- int t,caseno = 1;
- cin>>t;
- while(t--)
- {
- int k,n,m;
- cin>>k>>n>>m;
- int num,i;
- vector<int>st;
- for(i=1;i<=k;i++)
- {
- cin>>num;
- st.push_back(num);
- }
- vector<int>adj[1001];
- int u,v;
- for(i=1;i<=m;i++)
- {
- cin>>u>>v;
- adj[u].push_back(v);
- }
- int max = 10000;
- vector<int>::iterator it;
- for(it=st.begin();it!=st.end();it++)
- {
- int dis[1001];
- memset(dis, -1, sizeof(dis));
- queue<int>q;
- q.push(*it);
- dis[*it] = 0;
- while(!q.empty())
- {
- int pop = q.front();
- q.pop();
- for(i= 0; i<adj[pop].size();i++)
- {
- if(dis[adj[pop][i]]<0)
- {
- q.push(adj[pop][i]);
- dis[adj[pop][i]] = dis[pop]+1;
- }
- }
- }
- int count = 0;
- for(i=1;i<=n;i++)
- {
- if(dis[i]>=0) count++;
- }
- if(max>count) max = count;
- }
- cout << "Case " << caseno << ": " << max << endl;
- caseno++;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement