Untitled

 avatar
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