Advertisement
Ryuuk

10507 uva

Aug 24th, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.27 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4. vector<vector<int> > v;
  5.  
  6. int main()
  7. {
  8.     ios_base::sync_with_stdio(false);
  9.     int n;
  10.     while(cin>>n)
  11.     {
  12.     v.clear();
  13.     int arc,cont=1;
  14.     char a,b;
  15.     char c1,c2,c3;
  16.     map<char,int>m;
  17.     map<int,char>m1;
  18.     int tab[26];
  19.     memset(tab,0,sizeof tab);
  20.     cin>>arc;
  21.     v.assign(n+2,vector<int> (1,0));
  22.     cin>>c1>>c2>>c3;
  23.     for(int i=0; i<arc; i++)
  24.     {
  25.         cin>>a>>b;
  26.         if(!m[a])
  27.             {m1[cont]=a;m[a]=cont++;}
  28.         if(!m[b])
  29.             {m1[cont]=b;m[b]=cont++;}
  30.         if(a!=c1 && a!= c2 && a!= c3 && (b==c1 || b== c2 || b== c3))
  31.         {
  32.             v[m[a]][0]++;
  33.         }
  34.         else if(b!=c1 && b!= c2 && b!= c3 && (a==c1 || a== c2 || a== c3))
  35.         {
  36.             v[m[b]][0]++;
  37.         }
  38.             v[m[a]].push_back(m[b]);
  39.             v[m[b]].push_back(m[a]);
  40.     }
  41.     tab[c1-'A']=1;
  42.     tab[c2-'A']=1;
  43.     tab[c3-'A']=1;
  44.  
  45. int years=0;
  46. set<char> bb;
  47. set<char>::iterator it;
  48. int cond=0;
  49. for(int i=1; i<=n; i++)
  50.     {
  51.         cond=0;
  52.         if(tab[m1[i]-'A']==1 && i!=n)
  53.             continue;
  54.         if(v[i][0]>=3 && bb.find(m1[i])==bb.end() && tab[m1[i]-'A']==0)
  55.         {
  56.             cond=1;
  57.             char aa=m1[i];
  58.             bb.insert(aa);
  59.             i=1;
  60.             continue;
  61.         }
  62.         if(i==n && cond == 0 && bb.size()!=0)
  63.         {
  64.             for(int k=1;k<=n;k++)
  65.             {
  66.                 if(tab[m1[k]-'A']==1)
  67.                     continue;
  68.                 for(int j=1;j<v[k].size();j++)
  69.                     {
  70.                         if(bb.find(m1[v[k][j]])!=bb.end())
  71.                             {v[k][0]++;}
  72.                     }
  73.             }
  74.             for(it=bb.begin();it!=bb.end();++it)
  75.                 {tab[*it-'A']=1;}
  76.             years++;
  77.             bb.clear();
  78.             i=1;
  79.         }
  80.     }
  81.     int fal=0;
  82.     if(n==3)
  83.         {cout<<"WAKE UP IN, 0, YEARS"<<endl;continue;}
  84.     for(int i=1; i<=n; i++)
  85.     {
  86.         if(tab[m1[i]-'A']==1)
  87.             continue;
  88.         if(v[i][0]<3)
  89.         {
  90.             cout<<"THIS BRAIN NEVER WAKES UP"<<endl;
  91.             fal=1;
  92.             break;
  93.         }
  94.     }
  95.     if(!fal)
  96.         cout<<"WAKE UP IN, "<<years<<", YEARS"<<endl;
  97. }
  98.  
  99.     return 0;
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement