Submission #1206966

#TimeUsernameProblemLanguageResultExecution timeMemory
1206966lmaobruhZamjena (COCI18_zamjena)C++17
42 / 70
2 ms328 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define fi first #define se second #define vi vector<int> #define fo(i,a,b) for(int i=(a);i<=(b);++i) #define fd(i,a,b) for(int i=(a);i>=(b);--i) #define eb emplace_back #define all(x) x.begin(), x.end() #define maxi(a,b) a=max(a,b) #define mini(a,b) a=min(a,b) #define ii pair<int,int> const int N = 1e3+5, mod = 1e9+7; int n; string a[N], b[N]; map<string, string> fa; map<string, int> g; bool isNum(string &s) { for (char c : s) if (!isdigit(c)) return 0; return 1; } string find(string s) { if (!fa.count(s)) { fa[s]=s; return s; } return fa[s]==s?s:fa[s]=find(fa[s]); } void merge(string s, string t) { s=find(s), t=find(t); if (s!=t) fa[s]=t; } void solve() { cin >> n; fo(i,1,n) cin >> a[i]; fo(i,1,n) cin >> b[i]; fo(i,1,n) { if (isNum(a[i])&&isNum(b[i])&&a[i]!=b[i]) { cout << "NE"; return; } if (!isNum(a[i])&&!isNum(b[i])) { if (a[i]==b[i]) continue; merge(a[i], b[i]); } } fo(i,1,n) { if (isNum(a[i])^isNum(b[i])) { if (isNum(a[i])) { int x=stoi(a[i]); string t=find(b[i]); if (!g.count(t)) g[t]=x; else { if (g[t]!=x) { cout << "NE"; return; } } } else { int x=stoi(b[i]); string t=find(a[i]); if (!g.count(t)) g[t]=x; else { if (g[t]!=x) { cout << "NE"; return; } } } } } cout << "DA"; } signed main() { cin.tie(0)->sync_with_stdio(0); if (fopen("A.inp", "r")) freopen("A.inp", "r", stdin); solve(); }

Compilation message (stderr)

zamjena.cpp: In function 'int main()':
zamjena.cpp:86:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   86 |         freopen("A.inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
#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...