답안 #532362

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
532362 2022-03-02T18:40:25 Z ammar2000 Zamjena (COCI18_zamjena) C++17
28 / 70
39 ms 21448 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[a[i]]&&mp[a[i]]!=b[i])
           {
               cout <<"NE\n";
               return 0;
           }
           else
           {
               vis[a[i]]=1;
               mp[a[i]]=b[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 <<"DA";
   // use scanf not cin
   return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 9 ms 19020 KB Output is correct
2 Correct 10 ms 19220 KB Output is correct
3 Correct 9 ms 19024 KB Output is correct
4 Correct 9 ms 19056 KB Output is correct
5 Correct 9 ms 19104 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 10 ms 19016 KB Output is correct
2 Correct 10 ms 19024 KB Output is correct
3 Correct 10 ms 19000 KB Output is correct
4 Correct 12 ms 19152 KB Output is correct
5 Correct 12 ms 19052 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 9 ms 19068 KB Output is correct
2 Correct 10 ms 19024 KB Output is correct
3 Correct 10 ms 19024 KB Output is correct
4 Correct 10 ms 19108 KB Output is correct
5 Correct 10 ms 19024 KB Output is correct
6 Incorrect 10 ms 19104 KB Output isn't correct
7 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 12 ms 19092 KB Output is correct
2 Correct 11 ms 19164 KB Output is correct
3 Correct 10 ms 19228 KB Output is correct
4 Incorrect 12 ms 19308 KB Output isn't correct
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 15 ms 19480 KB Output is correct
2 Correct 31 ms 21104 KB Output is correct
3 Incorrect 39 ms 21448 KB Output isn't correct
4 Halted 0 ms 0 KB -