답안 #532360

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
532360 2022-03-02T18:37:17 Z ammar2000 Zamjena (COCI18_zamjena) C++17
0 / 70
33 ms 21040 KB
#include<bits/stdc++.h>
#define ll long long
#define pb push_back
#define F first
#define S second
#define coy cout<<"YES\n"
#define con cout<<"NO\n"
#define co1 cout<<"-1\n"
#define sc(x) scanf("%lld",&x)
#define all(x) x.begin(),x.end()
#define fast ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
using namespace std;
const int SI=3e5+7;
ll INF=8e18+7;
int dx[] = {1 , -1 , 0 , 0};
int dy[] = {0 , 0 , 1 , -1};
int MOD=1e9+7;
ll n;
string a[SI],b[SI];
bool v(string s)
{
    return !(s[0]<='0'||s[0]>='9');
}
map <string,ll> vis;
map <string ,string> mp;
int main()
{
   fast
   cin>>n;
   for (int i=0;i<n;i++)
    cin>>a[i];
   for (int i=0;i<n;i++)
    cin>>b[i];
   for (int i=0;i<n;i++)
   {
       bool o=v(a[i]),t=v(b[i]);
       if (o&&t)
       {
           if (a[i]!=b[i])
           {
               cout <<"NE\n";
               return 0;
           }
       }
       else if (o)
       {
           if (vis[b[i]]&&mp[b[i]]!=a[i])
           {
               cout <<"NE\n";
               return 0;
           }
           else
           {
               vis[b[i]]=1;
               mp[b[i]]=a[i];
           }
       }
       else if (t)
       {
           swap (a[i],b[i]);
          if (vis[b[i]]&&mp[b[i]]!=a[i])
           {
               cout <<"NE\n";
               return 0;
           }
           else
           {
               vis[b[i]]=1;
               mp[b[i]]=a[i];
           }
           swap (a[i],b[i]);
       }
   }
   for (int i=0;i<n;i++)
   {
       if (v(a[i])==0&&0==v(b[i]))
       {
           if (vis[a[i]]&&vis[b[i]])
           {
               if (mp[a[i]]!=mp[b[i]])
               {
               cout <<"NE\n";
               return 0;
               }
           }
           else if (vis[a[i]])
           {
               vis[b[i]]=1;
               mp[b[i]]=mp[a[i]];
           }
           else if (vis[b[i]])
           {
               vis[a[i]]=1;
               mp[a[i]]=mp[b[i]];
           }
       }
   }
   cout <<"DE";
   // use scanf not cin
   return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 10 ms 19024 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 10 ms 19084 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 10 ms 19024 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 10 ms 19152 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 16 ms 19620 KB Output is correct
2 Incorrect 33 ms 21040 KB Output isn't correct
3 Halted 0 ms 0 KB -