Pabon_SEC

Spreading The News

May 25th, 2016
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.83 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. vector<int>graph[2505];
  6.  
  7. bool color[2505];
  8.  
  9. int cost[2505],mx_boom,boom_day,counter,cst;
  10.  
  11. void bfs(int a)
  12. {
  13.     queue<int>Q;
  14.  
  15.     Q.push(a);
  16.  
  17.     color[a]=1;
  18.  
  19.     while(!Q.empty())
  20.     {
  21.         int u = Q.front();
  22.  
  23.         Q.pop();
  24.  
  25.         int sze = graph[u].size();
  26.  
  27.         for(int i=0; i<sze; ++i)
  28.         {
  29.             if(!color[graph[u][i]])
  30.             {
  31.                 color[graph[u][i]]=1;
  32.  
  33.                 cost[graph[u][i]]=cost[u]+1;
  34.  
  35.                 Q.push(graph[u][i]);
  36.  
  37.                 if(cst!=cost[graph[u][i]])
  38.                 {
  39.                     cst=cost[graph[u][i]];
  40.  
  41.                     counter = 0;
  42.                 }
  43.  
  44.                 counter++;
  45.  
  46.                 if(counter>mx_boom)
  47.                 {
  48.                     mx_boom = counter;
  49.  
  50.                     boom_day = cost[graph[u][i]];
  51.                 }
  52.  
  53.             }
  54.  
  55.         }
  56.     }
  57. }
  58.  
  59. int main()
  60. {
  61.     int e,n,i,j,k,a,t;
  62.  
  63.     while(scanf("%d",&e)==1)
  64.     {
  65.         for(i=0; i<e; ++i)
  66.         {
  67.             scanf("%d",&n);
  68.  
  69.             for(j=1; j<=n; ++j)
  70.             {
  71.                 scanf("%d",&a);
  72.  
  73.                 graph[i].push_back(a);
  74.  
  75.             }
  76.        }
  77.  
  78.         scanf("%d",&t);
  79.  
  80.         for(i=1; i<=t; ++i)
  81.         {
  82.             scanf("%d",&a);
  83.  
  84.             mx_boom = boom_day = 0;
  85.  
  86.             cst = counter = 0;
  87.  
  88.             bfs(a);
  89.  
  90.             if(!counter)
  91.             {
  92.                 printf("0\n");
  93.             }
  94.             else
  95.             {
  96.                 printf("%d %d\n",mx_boom,boom_day);
  97.             }
  98.  
  99.             memset(color,false,sizeof(color));
  100.  
  101.             memset(cost,0,sizeof(cost));
  102.         }
  103.  
  104.         for(i=0;i<=e;i++)
  105.         {
  106.             graph[i].clear();
  107.         }
  108.     }
  109.  
  110.     return 0;
  111. }
Advertisement
Add Comment
Please, Sign In to add comment