Submission #1206976

#TimeUsernameProblemLanguageResultExecution timeMemory
1206976lmaobruhZamjena (COCI18_zamjena)C++17
14 / 70
63 ms67140 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define fi first
#define se second
#define vi vector<int>
#define fo(i,a,b) for(int i=(a);i<=(b);++i)
#define fd(i,a,b) for(int i=(a);i>=(b);--i)
#define eb emplace_back
#define all(x) x.begin(), x.end()
#define maxi(a,b) a=max(a,b)
#define mini(a,b) a=min(a,b)
#define ii pair<int,int>

const int N = 1e6+5, mod = 1e9+7;

int n;
string a[N], b[N];
set<string> vis;
map<string, vector<string>> g;
int pre;
bool f;

bool isNum(string &s) {
    for (char c : s)
        if (!isdigit(c)) return 0;
    return 1;
}

void dfs(string &s) {
    if (!f) return;
    vis.insert(s);
    for (string &t:g[s]) {
        if (isNum(t)) {
            if (pre==-1) pre=stoi(t);
            if (stoi(t)^pre) f=0;
            return;
        }
        else if (!vis.count(t)) dfs(t);
    }
}

void solve() {
    cin >> n;
    fo(i,1,n) cin >> a[i];
    fo(i,1,n) cin >> b[i];
    fo(i,1,n) {
        if (isNum(a[i])&&isNum(b[i])&&a[i]!=b[i]) {
            cout << "NE";
            return;
        }
        g[a[i]].eb(b[i]); g[b[i]].eb(a[i]);
    }

    fo(i,1,n) {
        if (a[i]==b[i]) continue;

        f=1; pre=-1;
        if (!vis.count(a[i])&&!isNum(a[i])) dfs(a[i]);
        if (!f) {
            cout << "NE";
            return;
        }

        f=1; pre=-1;
        if (!vis.count(b[i])&&!isNum(b[i])) dfs(b[i]);
        if (!f) {
            cout << "NE";
            return;
        }
    }
    cout << "DA";
}

signed main() {
    cin.tie(0)->sync_with_stdio(0);
    if (fopen("A.inp", "r"))
        freopen("A.inp", "r", stdin);
    solve();
}

Compilation message (stderr)

zamjena.cpp: In function 'int main()':
zamjena.cpp:78:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   78 |         freopen("A.inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
#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...