Untitled
unknown
plain_text
a year ago
1.5 kB
7
Indexable
#include <iostream> #include <algorithm> #include <vector> using namespace std; vector<string> v[11]; char aft[11] , bef[11]; int ord[11]; int check(int k , vector<string> a , vector<string> b){ int ok = 0 , ok1 = 0; for(int i = 2; i < a.size(); i++){ if(a[i] == b[0]) ok = 1; } for(int i = 2; i < b.size(); i++){ if(b[i] == a[0]) ok1 = 1; } if(a[0] == b[0]) ok = 1 , ok1 = 1; if(ok == 0 || ok1 == 0) return 0; for(int i = 0; i < a[1].size(); i++){ for(int j = 0; j < b[1].size(); j++){ if(a[1][i] == b[1][j]) { aft[k] = a[1][i]; bef[k%10+1] = a[1][i]; return 1; } } } return 0; } int main(){ string per; while(getline(cin , per)){ string t[11]; t[1] = per; for(int i = 2; i <= 10; i++) getline(cin, t[i]); for(int i = 1; i <= 10; i++){ v[i].clear(); string s = t[i], nw = ""; s += " "; for(int j = 0; j < s.size(); j++){ if(s[j] == ' '){ v[i].push_back(nw); nw = ""; } else { nw += s[j]; } } ord[i] = i; } int ans = 0; do { int ok = 0; for(int i = 1; i <= 10; i++){ if(!check(i,v[ord[i]],v[ord[i%10+1]])){ ok = 1; } } if(ok == 0){ for(int i = 1; i <= 10; i++){ cout << i <<" " << bef[i] <<" " << v[ord[i]][0] << " " << aft[i] << "\n"; } ans = 1; break; } } while (next_permutation(ord+1,ord+1+10)); if(ans == 0){ cout << "NO SOLUTION EXISTS\n"; } } }
Editor is loading...
Leave a Comment