Submission #1013671

#TimeUsernameProblemLanguageResultExecution timeMemory
1013671SaladdZamjena (COCI18_zamjena)C++14
28 / 70
15 ms1672 KiB
#include <bits/stdc++.h> using namespace std; map <string,int> mp; int pa[1000000],arr[1000000],arr2[1000000],st[100000]; int root(int x) { if(pa[x]==x) return x; else return pa[x] = root(pa[x]); } int main() { cin.tie(0)->sync_with_stdio(0); int n; int idx=1; cin >> n; for (int i=1;i<=n;i++){ string str; int cnt=0; cin >> str; int len = str.size(); //cout << mp[str] << " ----\n"; if(mp[str]>0){ arr[i]=mp[str]; continue; } for (int j=0;j<len && cnt==0;j++){ //cout << str[j] << "\n"; if(isalpha(str[j])){ arr[i]=idx; pa[idx]=idx; mp[str]=idx; st[idx++]=1; cnt=1; } else{ arr[i]=idx; pa[idx]=idx; mp[str]=idx; st[idx++]=0; cnt=1; } } } for (int i=1;i<=n;i++){ string str; int cnt=0; cin >> str; int len = str.size(); if(mp[str]>0){ arr2[i]=mp[str]; continue; } for (int j=0;j<len && cnt==0;j++){ if(isalpha(str[j])){ arr2[i]=idx; pa[idx]=idx; mp[str]=idx; st[idx++]=1; cnt=1; } else{ arr2[i]=idx; pa[idx]=idx; mp[str]=idx; st[idx++]=0; cnt=1; } } } for(int i=1;i<=n;i++){ int a=arr[i]; int b=arr2[i]; if(root(a)!=root(b) && (st[b]==1 || st[a]==1)){ if (st[a]==1) { pa[root(a)]=root(b); st[a]=0; } else { pa[root(b)]=root(a); st[b]=0; } } if(root(a)!=root(b) && st[b]==0){ cout << "NE"; return 0; } } cout << "DA"; /*cout << '\n'; for (int i=1;i<=n;i++){ cout << pa[arr[i]] << " "; } cout << '\n'; for (int i=1;i<=n;i++){ cout << pa[arr2[i]] << " "; }*/ return 0; } /* 4 4 5 iks ipasdasd 1 iks 3 iks 3 5 iks ipasdasd iks 3 iks 5 x 3 x y 3 x y 2 z 3 */
#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...