제출 #151410

#제출 시각아이디문제언어결과실행 시간메모리
151410phillipZamjena (COCI18_zamjena)C++14
42 / 70
115 ms8824 KiB
#include <bits/stdc++.h>

using namespace std;
map<string,int>m;
void mapit(string s)
{
    if(s.size()<=3)
    {
        int x=0,ml=1;
        for(int i=s.size()-1;i>=0;i--)
        {
            if(s[i]-'0'>9)
            {
                m[s]=-1;
                return;
            }
            x+=(s[i]-'0')*ml;
            ml*=10;
        }
        m[s]=x;
    }
    else m[s]=-1;
}
string s[100009],s2[100009];
int n;
int main()
{
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>s[i];
        mapit(s[i]);
      //  cout<<m[s[i]]<<" ";
    }
    //cout<<"\n";
    for(int i=0;i<n;i++)
    {
        cin>>s2[i];
        mapit(s2[i]);
        //cout<<m[s2[i]]<<" ";
    }
   // cout<<"\n";
    for(int i=0;i<n;i++)
    {
        if(m[s[i]]==-1&&m[s2[i]]==-1)continue;
        else if(m[s[i]]!=-1&&m[s2[i]]!=-1&&m[s[i]]!=m[s2[i]]){cout<<"NE";/*1 "<<i<<" "<<m[s[i]]<<" "<<m[s2[i]]*/;return 0;}
        m[s[i]]=max(m[s[i]],m[s2[i]]);
        m[s2[i]]=max(m[s[i]],m[s2[i]]);
    }
    for(int i=0;i<n;i++)
    {
        if(m[s[i]]==-1&&m[s2[i]]==-1)continue;
        else if(m[s[i]]!=-1&&m[s2[i]]!=-1&&m[s[i]]!=m[s2[i]]){cout<<"NE";return 0;}
        m[s[i]]=max(m[s[i]],m[s2[i]]);
        m[s2[i]]=max(m[s[i]],m[s2[i]]);
    }
    cout<<"DA";
}
#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...