답안 #627421

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
627421 2022-08-12T14:49:10 Z Farhan_HY Zamjena (COCI18_zamjena) C++14
28 / 70
57 ms 65536 KB
#include <bits/stdc++.h>
#define int long long
#define float double
#define pb push_back
#define F first
#define S second
#define T int t; cin >> t; while(t--)
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);

using namespace std;
/// Benzema is the best player in the world
const int inf = 8e18;
const int N = 1e6 + 6;
const int M = 1e3 + 3;
const int LOG = 31;
const int mod = 1e9 + 7;
const float pi = atan(1) * 4;
string a[N], b[N];
int n;
map<string, string> mp;
vector<pair<string, string>> v;

bool num(string s)
{
    bool ok = 1;
    for(auto x: s)
        ok &= x >= '0' && x <= '9';
    return ok;
}

main()
{
    IOS
    cin >> n;
    for(int i = 1; i <= n; i++)
        cin >> a[i];
    for(int i = 1; i <= n; i++)
        cin >> b[i];
    bool ans = 1;
    for(int i = 1; i <= n; i++)
    {
        bool A = num(a[i]);
        bool B = num(b[i]);
        if (A) mp[a[i]] = a[i];
        if (B) mp[b[i]] = b[i];
        if (A && B)
            ans &= a[i] == b[i];
        else if (A && !B)
        {
            if (mp.count(b[i]))
                ans &= mp[b[i]] == a[i];
            else
                mp[b[i]] = a[i];
        }
        else if (!A && B)
        {
            if (mp.count(a[i]))
                ans &= mp[a[i]] == b[i];
            else
                mp[a[i]] = b[i];
        }
        else if (mp.count(a[i]) && !mp.count(b[i]))
            mp[b[i]] = mp[a[i]];
        else if (!mp.count(a[i]) && mp.count(b[i]))
            mp[a[i]] = mp[b[i]];
        else if (!mp.count(a[i]) && !mp.count(b[i]))
            v.pb({a[i], b[i]});
    }
    for(auto x: v)
    {
        string A = mp[x.F];
        string B = mp[x.S];
        if (B.size() == 0)
            mp[x.S] = B = A;
        if (A.size() == 0) A = mp[x.F] = B;
        ans &= A == B;
    }
    if (ans) cout << "DA";
    else cout << "NE";
}
///use scanf

Compilation message

zamjena.cpp:31:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   31 | main()
      | ^~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 30 ms 62924 KB Output is correct
2 Correct 30 ms 62876 KB Output is correct
3 Correct 34 ms 62896 KB Output is correct
4 Correct 31 ms 62932 KB Output is correct
5 Correct 30 ms 62840 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 31 ms 62824 KB Output is correct
2 Correct 35 ms 62920 KB Output is correct
3 Correct 30 ms 62888 KB Output is correct
4 Correct 30 ms 62928 KB Output is correct
5 Correct 30 ms 62924 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 30 ms 62932 KB Output is correct
2 Correct 30 ms 62876 KB Output is correct
3 Correct 31 ms 62860 KB Output is correct
4 Correct 30 ms 62932 KB Output is correct
5 Correct 30 ms 62936 KB Output is correct
6 Incorrect 34 ms 62932 KB Output isn't correct
7 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 30 ms 63052 KB Output is correct
2 Correct 31 ms 63060 KB Output is correct
3 Correct 34 ms 63308 KB Output is correct
4 Correct 37 ms 63332 KB Output is correct
5 Correct 36 ms 63332 KB Output is correct
6 Incorrect 33 ms 63148 KB Output isn't correct
7 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 40 ms 64212 KB Output is correct
2 Correct 57 ms 65276 KB Output is correct
3 Runtime error 55 ms 65536 KB Execution killed with signal 9
4 Halted 0 ms 0 KB -