Submission #561546

#TimeUsernameProblemLanguageResultExecution timeMemory
561546AGEDeblo (COCI18_deblo)C++14
0 / 90
206 ms14608 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 = 3e5; 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], tot = 999; 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; return; } string trans(int x){ 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 = 1; i < 1000; ++i) mp[trans(i)] = i; for(int i = 1; i <= n; ++i){ string s; cin >> s; if(!mp[s]) mp[s] = ++tot; a[i] = mp[s]; } for(int i = 1; i <= n; ++i){ string s; cin >> s; 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...