Submission #703615

#TimeUsernameProblemLanguageResultExecution timeMemory
703615delreyZamjena (COCI18_zamjena)C++14
70 / 70
84 ms14416 KiB
#include <bits/stdc++.h> using namespace std; int n, a[50000], b[50000]; unordered_map <string, vector<int> > varA, varB; string x[50000], y[50000]; int StrToInt(string &s) { int k = 0; for(size_t i = 0; i < s.length(); i++) k = k * 10 + s[i] - '0'; return k; } int main() { cin>>n; string s; for(int i = 0; i < n; i++) { cin>>s; if(s[0] >= '0' && s[0] <= '9') { a[i] = StrToInt(s); continue; } varA[s].push_back(i); x[i] = s; } for(int i = 0; i < n; i++) { cin>>s; if(s[0] >= '0' && s[0] <= '9') { b[i] = StrToInt(s); continue; } varB[s].push_back(i); y[i] = s; } bool finish = false; while(!finish) { finish = true; for(int i = 0; i < n; i++) { int k = -1; if(a[i] && !b[i]) { k = a[i]; s = y[i]; } if(!a[i] && b[i]) { k = b[i]; s = x[i]; } if(k == -1) continue; for(auto j : varA[s]) a[j] = k; for(auto j : varB[s]) b[j] = k; finish = false; } } for(int i = 0; i < n; i++) if(a[i] != b[i]) { cout<<"NE"<<endl; return 0; } cout<<"DA"<<endl; return 0; }
#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...