Submission #1270426

#TimeUsernameProblemLanguageResultExecution timeMemory
1270426SmuggingSpunZamjena (COCI18_zamjena)C++20
70 / 70
166 ms17160 KiB
#include<bits/stdc++.h>
#define taskname "B"
using namespace std;
map<string, vector<string>>g;
map<string, string>cnt;
void dfs(string s){
	for(string& t : g[s]){
		if(cnt[t] == ""){
			cnt[t] = cnt[s];
			dfs(t);
		}
		else if(cnt[t] != cnt[s]){
			cout << "NE";
			exit(0);
		}
	}
}
int main(){
	ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	if(fopen(taskname".inp", "r")){
		freopen(taskname".inp", "r", stdin);
	}
	int n;
	cin >> n;
	vector<string>a(n), b(n);
	for(string& s : a){
		cin >> s;
		cnt[s] = "";
	}
	for(string& s : b){
		cin >> s;
		cnt[s] = "";
	}
	vector<int>p;
	for(int i = 0; i < n; i++){
		bool da = (48 <= a[i][0] && 57 >= a[i][0]), db = (48 <= b[i][0] && 57 >= b[i][0]);
		if(da && db){
			if(a[i] != b[i]){
				return cout << "NE", 0;
			}
		} 
		else if(da){
			if(cnt[b[i]] != "" && cnt[b[i]] != a[i]){
				return cout << "NE", 0;
			}
			cnt[b[i]] = a[i];
		}
		else if(db){
			if(cnt[a[i]] != "" && cnt[a[i]] != b[i]){
				return cout << "NE", 0;
			}
			cnt[a[i]] = b[i];
		}
		else{
			g[a[i]].emplace_back(b[i]);
			g[b[i]].emplace_back(a[i]);
		}
	}
	for(auto it = cnt.begin(); it != cnt.end(); it++){
		if(it->second != ""){
			dfs(it->first);
		}
	}
	cout << "DA";
}

Compilation message (stderr)

zamjena.cpp: In function 'int main()':
zamjena.cpp:21:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   21 |                 freopen(taskname".inp", "r", stdin);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...