Submission #779034

#TimeUsernameProblemLanguageResultExecution timeMemory
779034vjudge1Zamjena (COCI18_zamjena)C++17
70 / 70
781 ms12696 KiB
#include<bits/stdc++.h>
using namespace std;
#define lalala ios_base::sync_with_stdio(false);cin.tie(NULL);
//#define endl "\n"
#define int long long int
#define pb push_back
#define N 105
map<string,string> mp;
map<string,int> var;
signed main(){
	lalala;
	int n;cin>>n;
	vector<string> bir, iki;
	for(int i=0;i<n;i++){
		string str;cin>>str;
		bir.pb(str);
		if((str[0]-'0'<=9)){
			mp[str]=str;
		}
		else{
			mp[str]="&&";
		}
		var[str]=1;
	}
	int yes=1;
	for(int i=0;i<n;i++){
		string str;cin>>str;
		iki.pb(str);
		if((str[0]-'0'<=9)){
			mp[str]=str;
		}
		else{
			if(var[str]==0)mp[str]="&&";
		}var[str]=1;
		if(mp[iki[i]]==mp[bir[i]])continue;
		if(mp[iki[i]]=="&&")mp[iki[i]]=mp[bir[i]];
		if(mp[bir[i]]=="&&")mp[bir[i]]=mp[iki[i]];
		if(mp[bir[i]]!=mp[iki[i]])yes=0;
	}
	int uwu=10;
	while(uwu--){
		if(yes==0)break;

		for(int i=n-1;i>-1;i--){
			if(mp[iki[i]]==mp[bir[i]])continue;
			if(mp[iki[i]]=="&&")mp[iki[i]]=mp[bir[i]];
			if(mp[bir[i]]=="&&")mp[bir[i]]=mp[iki[i]];
			if(mp[bir[i]]!=mp[iki[i]]){
				yes=0;
				break;
			}
		}
		for(int i=0;i<n;i++){
			if(mp[iki[i]]==mp[bir[i]])continue;
			if(mp[iki[i]]=="&&")mp[iki[i]]=mp[bir[i]];
			if(mp[bir[i]]=="&&")mp[bir[i]]=mp[iki[i]];
			if(mp[bir[i]]!=mp[iki[i]]){
				yes=0;
				break;
			}
		}
	}
	if(yes)cout<<"DA"<<endl;
	else cout<<"NE"<<endl;


}


#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...