Untitled
unknown
plain_text
a year ago
1.5 kB
11
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