Submission #227876

#TimeUsernameProblemLanguageResultExecution timeMemory
227876NONAMEZamjena (COCI18_zamjena)C++17
70 / 70
498 ms22060 KiB
#include <bits/stdc++.h> #define sz(x) int(x.size()) #define in(x) freopen(x, "r", stdin) #define out(x) freopen(x, "w", stdout) #define N 100500 #define oo ll(1e16) #define ft first #define sd second #define pb push_back #define ppb pop_back #define el '\n' #define elf endl #define base ll(1e9 + 7) using namespace std; typedef long long ll; typedef long double ld; int n, m; bool mk[N]; string s[N], t[N]; set <string> se; map <string, string> val; vector <string> ord; map <string, vector <pair <string, int> > > g; void dfs(string v, int p) { if (mk[p]) return; mk[p] = 1; ord.pb(v); if (v[0] >= '0' && v[0] <= '9') se.insert(v); for (int i = 0; i < sz(g[v]); i++) dfs(g[v][i].ft, g[v][i].sd); } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); // in("input.txt"); cin >> n; for (int i = 0; i < n; i++) cin >> s[i], val[s[i]] = "-1"; for (int i = 0; i < n; i++) cin >> t[i], val[t[i]] = "-1"; for (int i = 0; i < n; i++) { g[s[i]].pb({t[i], n + i}); g[t[i]].pb({s[i], i}); } for (int i = 0; i < n; i++) { ord.clear(); se.clear(); dfs(s[i], i); dfs(t[i], n + i); if (sz(se) > 1) { cout << "NE"; return 0; } string c = ""; if (se.empty()) c = "1"; else c = *se.begin(); while (!ord.empty()) { if (val[ord.back()] != "-1" && val[ord.back()] != c) { cout << "NE"; return 0; } val[ord.back()] = c; ord.ppb(); } } cout << "DA"; }
#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...