Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- vector<vector<int> > v;
- int main()
- {
- ios_base::sync_with_stdio(false);
- int n;
- while(cin>>n)
- {
- v.clear();
- int arc,cont=1;
- char a,b;
- char c1,c2,c3;
- map<char,int>m;
- map<int,char>m1;
- int tab[26];
- memset(tab,0,sizeof tab);
- cin>>arc;
- v.assign(n+2,vector<int> (1,0));
- cin>>c1>>c2>>c3;
- for(int i=0; i<arc; i++)
- {
- cin>>a>>b;
- if(!m[a])
- {m1[cont]=a;m[a]=cont++;}
- if(!m[b])
- {m1[cont]=b;m[b]=cont++;}
- if(a!=c1 && a!= c2 && a!= c3 && (b==c1 || b== c2 || b== c3))
- {
- v[m[a]][0]++;
- }
- else if(b!=c1 && b!= c2 && b!= c3 && (a==c1 || a== c2 || a== c3))
- {
- v[m[b]][0]++;
- }
- v[m[a]].push_back(m[b]);
- v[m[b]].push_back(m[a]);
- }
- tab[c1-'A']=1;
- tab[c2-'A']=1;
- tab[c3-'A']=1;
- int years=0;
- set<char> bb;
- set<char>::iterator it;
- int cond=0;
- for(int i=1; i<=n; i++)
- {
- cond=0;
- if(tab[m1[i]-'A']==1 && i!=n)
- continue;
- if(v[i][0]>=3 && bb.find(m1[i])==bb.end() && tab[m1[i]-'A']==0)
- {
- cond=1;
- char aa=m1[i];
- bb.insert(aa);
- i=1;
- continue;
- }
- if(i==n && cond == 0 && bb.size()!=0)
- {
- for(int k=1;k<=n;k++)
- {
- if(tab[m1[k]-'A']==1)
- continue;
- for(int j=1;j<v[k].size();j++)
- {
- if(bb.find(m1[v[k][j]])!=bb.end())
- {v[k][0]++;}
- }
- }
- for(it=bb.begin();it!=bb.end();++it)
- {tab[*it-'A']=1;}
- years++;
- bb.clear();
- i=1;
- }
- }
- int fal=0;
- if(n==3)
- {cout<<"WAKE UP IN, 0, YEARS"<<endl;continue;}
- for(int i=1; i<=n; i++)
- {
- if(tab[m1[i]-'A']==1)
- continue;
- if(v[i][0]<3)
- {
- cout<<"THIS BRAIN NEVER WAKES UP"<<endl;
- fal=1;
- break;
- }
- }
- if(!fal)
- cout<<"WAKE UP IN, "<<years<<", YEARS"<<endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement