Submission #561747

#TimeUsernameProblemLanguageResultExecution timeMemory
561747Yazan_AlattarZamjena (COCI18_zamjena)C++14
42 / 70
1079 ms20700 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, string> p; string a[M], b[M]; int n; string root(string x){ while(x != p[x]){ p[x] = p[p[x]]; x = p[x]; } return x; } void connect(string x, string y){ x = root(x); y = root(y); if(x == y) return; p[x] = y; 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 >> a[i]; p[a[i]] = a[i]; } for(int i = 1; i <= n; ++i){ cin >> b[i]; p[b[i]] = b[i]; } for(int i = 1; i <= n; ++i) connect(a[i], b[i]); for(int i = 1; i <= n; ++i){ for(int j = 1; j <= n; ++j){ if(is(a[i]) && is(b[j]) && a[i] != b[j] && root(a[i]) == root(b[j])) cout << "NE\n", exit(0); if(is(a[i]) && is(a[j]) && a[i] != a[j] && root(a[i]) == root(a[j])) cout << "NE\n", exit(0); if(is(b[i]) && is(b[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...