Submission #573557

#TimeUsernameProblemLanguageResultExecution timeMemory
573557Hussein3602Zamjena (COCI18_zamjena)C++14
28 / 70
36 ms2576 KiB
#include<bits/stdc++.h> #include<sstream> using namespace std ; typedef long long ll ; int main() { ll n ; bool ok=true; map<string,ll>var,mp; map<string,string>rep ; vector<string>b,a; cin >> n ; for(ll i=1;i<=1000;i++) { ostringstream s; s<<i; string s1=s.str(); var[s1]++; } for(ll i=0;i<n;i++) { string s; cin >> s ; a.push_back(s) ; rep[s]=s; } for(ll i=0;i<n;i++) { string s; cin >> s ; b.push_back(s) ; rep[s]=s; } for(ll i=0;i<n;i++) { if(var[a[i]]>0) { if(var[b[i]]>0) { // to be a[i] and b[i] is integer if(a[i]!=b[i]) ok=false ; } else { // to be a[i] is an integer and b[i] is a variable b[i]=rep[b[i]] ;// if there is a variable that must be equal to him ll num=0,pw=1; for(ll j=a[i].size()-1;j>=0;j--) { num+=int(a[i][j]-'0')*pw; pw*=10; } if(mp[b[i]]==0) { mp[b[i]]=num; //cout<<num<<endl; } else { if(mp[b[i]]!=num) ok=false ; //cout<<num<<" "<<mp[b[i]]<<endl; } } } else { if(var[b[i]]>0) { a[i]=rep[a[i]] ; ll num=0,pw=1; for(ll j=b[i].size()-1;j>=0;j--) { num+=int(b[i][j]-'0')*pw; pw*=10; } if(mp[a[i]]==0) { mp[a[i]]=num; } else { if(mp[a[i]]!=num) ok=false ; } } else //both of them are variable { string s1=a[i],s2=b[i]; b[i]=rep[b[i]] ; a[i]=rep[a[i]] ; if(mp[a[i]]==0&&mp[b[i]]!=0) { rep[a[i]]=b[i] ; rep[s1]=b[i]; } else if(mp[b[i]]==0&&mp[a[i]]!=0) { rep[b[i]]=a[i] ; rep[s2]=a[i] ; } else if(mp[b[i]]==0&&mp[a[i]]==0) { rep[b[i]]=a[i] ; rep[s2]=a[i] ; } else if(mp[b[i]]!=mp[a[i]])ok=false; } } } if(ok)cout<<"DA"<<endl; else cout<<"NE"<<endl; }
#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...