Advertisement
Kaidul

LightOJ 1111 - Best Picnic Ever

Aug 17th, 2012
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.43 KB | None | 0 0
  1. /*
  2. Problem ID : LightOJ  1111 - Best Picnic Ever
  3. Author     : Kaidul Islam
  4. */
  5. #include<iostream>
  6. #include<vector>
  7. #include<queue>
  8. #include<cstring>
  9. using namespace std;
  10. int main()
  11. {
  12.     int t,caseno = 1;
  13.     cin>>t;
  14.     while(t--)
  15.     {
  16.         int k,n,m;
  17.         cin>>k>>n>>m;
  18.         int num,i;
  19.         vector<int>st;
  20.         for(i=1;i<=k;i++)
  21.         {
  22.             cin>>num;
  23.             st.push_back(num);
  24.         }
  25.         vector<int>adj[1001];
  26.         int u,v;
  27.         for(i=1;i<=m;i++)
  28.         {
  29.             cin>>u>>v;
  30.             adj[u].push_back(v);
  31.         }
  32.         int max = 10000;
  33.         vector<int>::iterator it;
  34.         for(it=st.begin();it!=st.end();it++)
  35.         {
  36.             int dis[1001];
  37.             memset(dis, -1, sizeof(dis));
  38.             queue<int>q;
  39.             q.push(*it);
  40.             dis[*it] = 0;
  41.         while(!q.empty())
  42.         {
  43.             int pop = q.front();
  44.             q.pop();
  45.             for(i= 0; i<adj[pop].size();i++)
  46.             {
  47.                 if(dis[adj[pop][i]]<0)
  48.                 {
  49.                     q.push(adj[pop][i]);
  50.                     dis[adj[pop][i]] = dis[pop]+1;
  51.                 }
  52.             }
  53.         }
  54.         int count = 0;
  55.         for(i=1;i<=n;i++)
  56.         {
  57.             if(dis[i]>=0) count++;
  58.         }
  59.         if(max>count) max = count;
  60.     }
  61.     cout << "Case " << caseno << ": " << max << endl;
  62.     caseno++;
  63. }
  64.     return 0;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement