Submission #561761

#TimeUsernameProblemLanguageResultExecution timeMemory
561761Yazan_AlattarZamjena (COCI18_zamjena)C++14
56 / 70
1089 ms7892 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 = 100007; 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; string s1[M], s2[M]; int n, sz[M], p[M], a[M], b[M], tot; 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; if(sz[x] > sz[y]) swap(x, y); p[x] = y; sz[y] += sz[x]; return; } bool is(string s) { return (s[0] >= '0' && s[0] <= '9'); } int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n; for(int i = 1; i <= n; ++i){ cin >> s1[i]; if(!mp[s1[i]]) mp[s1[i]] = ++tot; a[i] = mp[s1[i]]; s1[i] = s1[i][0]; p[a[i]] = a[i]; sz[a[i]] = 1; } for(int i = 1; i <= n; ++i){ cin >> s2[i]; if(!mp[s2[i]]) mp[s2[i]] = ++tot; b[i] = mp[s2[i]]; s2[i] = s2[i][0]; p[b[i]] = b[i]; sz[b[i]] = 1; } for(int i = 1; i <= n; ++i) connect(a[i], b[i]); for(int i = 1; i <= n; ++i){ for(int j = i + 1; j <= n; ++j){ if(is(s1[i]) && is(s2[j]) && a[i] != b[j] && root(a[i]) == root(b[j])) cout << "NE\n", exit(0); if(is(s1[i]) && is(s1[j]) && a[i] != a[j] && root(a[i]) == root(a[j])) cout << "NE\n", exit(0); if(is(s2[i]) && is(s2[j]) && b[i] != b[j] && root(b[i]) == root(b[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...