Submission #561732

#TimeUsernameProblemLanguageResultExecution timeMemory
561732Yazan_AlattarZamjena (COCI18_zamjena)C++14
28 / 70
14 ms1020 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; #define F first #define S second #define pb push_back #define endl "\n" #define all(x) x.begin(), x.end() const int M = 300007; const ll inf = 1e9; const ll mod = 1e9 + 7; const double pi = acos(-1); const double eps = 1e-6; const int dx[] = {0, -1, 0, 1}, dy[] = {1, 0, -1, 0}; const int block = 320; map <string,int> mp; int n, a[M], b[M], p[M], sz[M], tot = 1000; int root(int x){ while(x != p[x]){ p[x] = p[p[x]]; x = p[x]; } return x; } void connect(int x, int y){ x = root(x); y = root(y); if(x == y) return; p[x] = y; sz[y] += sz[x]; return; } string trans(int x){ if(x == 0) return "0"; string ret = ""; while(x){ ret += char('0' + (x % 10)); x /= 10; } reverse(all(ret)); return ret; } int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n; for(int i = 0; i < 1000; ++i) mp[trans(i)] = i + 1, sz[i] = 1; for(int i = 1; i <= n; ++i){ string s; cin >> s; assert(s[0] != '0'); if(!mp[s]) mp[s] = ++tot; a[i] = mp[s]; } for(int i = 1; i <= n; ++i){ string s; cin >> s; assert(s[0] != '0'); if(!mp[s]) mp[s] = ++tot; b[i] = mp[s]; } for(int i = 1; i <= tot; ++i) p[i] = i; for(int i = 1; i <= n; ++i) connect(a[i], b[i]); for(int i = 1; i < 1000; ++i) for(int j = i + 1; j < 1000; ++j) if(root(i) == root(j)) cout << "NE\n", exit(0); cout << "DA\n"; 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...