Submission #620539

#TimeUsernameProblemLanguageResultExecution timeMemory
6205393omar_ahmedZamjena (COCI18_zamjena)C++17
14 / 70
32 ms3208 KiB
#pragma GCC optimize("Ofast") #include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace std ; using namespace __gnu_pbds; #define int long long #define endl '\n' #define ordered_set tree<pair < int ,int >,null_type,less<pair < int ,int >>,rb_tree_tag,tree_order_statistics_node_update> #define all(a) a.begin() , a.end() #define alr(a) a.rbegin() , a.rend() bool check(string x){ return(x[0] >= '0' && x[0] <= '9'); } signed main(){ ios_base::sync_with_stdio(0), cin.tie(0),cout.tie(0); int n ; cin >> n ; vector < string > a(n) , b(n); map < string , string > mp ; for( auto &i : a ) cin >> i; for( auto &i : b ) cin >> i; for( int i = 0 ; i < n ; i++ ) mp[a[i]] = mp[b[i]] = "inf"; for( int re = 0 ; re < 10 ; re++ ) { for( int i = 0 ; i < n ; i++ ){ bool f1 = check(a[i]) , f2 = check(b[i]); if( f1 && f2 ){ mp[a[i]] = a[i] , mp[b[i]] = b[i]; if(a[i] != b[i]) return cout << "NE" , 0; } else{ if(!f1 && !f2){ if(mp[a[i]] != "inf") a[i] = mp[a[i]]; if(mp[b[i]] != "inf") b[i] = mp[b[i]]; } else { if(mp[(f1 ? b[i] : a[i])] == "inf") mp[(f1 ? b[i] : a[i])] = a[i] , (f1 ? b[i] : a[i]) = (f1 ? a[i] : b[i]); else{ if(mp[(f1 ? b[i] : a[i])] != (f1 ? b[i] : b[i])) return cout << "NE" , 0; else (f1 ? b[i] : a[i]) = (f1 ? a[i] : b[i]); } } } } } for( int i = 0 ; i < n ; i++ ) a[i] = mp[a[i]] , b[i] = mp[b[i]]; cout << (a == b? "DA" : "NE"); 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...