#include #include #include #include #include #include #include using namespace std; int find_etalon(vector arr){ if(arr[0]==arr[1]) return 0; if(arr[0]==arr[2]) return 0; if(arr[1]==arr[2]) return 1; } bool dfs(map> arr){ /*if(ans)vector return true; if(st.size()==1) return true; set paths = st[v]; st.erase(v); for(auto i=paths.begin();i!=paths.end();i++){ for(auto el: st){ if(el.second.find(*i)!=el.second.end() && !visited[el.first]){ map> nst(st); if(el.second.size()>1) nst[el.first].erase(*i); visited[el.first] = true; //cout << v << el.first << " " << nst.size() < keys; for(auto el:arr) keys.push_back(el.first); int n = keys.size(); bool ans = false; for(int k=0;k<5000;k++){ for(auto el:arr){ random_shuffle(el.second.begin(),el.second.end()); } random_shuffle(keys.begin(),keys.end()); for(int i=0;i //for(int i=0;) map rem; while(cin>>n){ map> suits, ranks; vector arr; for(int i=0;i> s; arr.push_back(s); ranks[s[0]].push_back(s[1]); suits[s[1]].push_back(s[0]); } sort(arr.begin(),arr.end()); string lol; for(int i=0;i