Submission #169984

#TimeUsernameProblemLanguageResultExecution timeMemory
169984darklight256Planinarenje (COCI18_planinarenje)C++14
160 / 160
12 ms760 KiB
//
//  pl.cpp
//  Code
//
//  Created by Mohammadreza Raddanipour on 12/23/19.
//  Copyright © 2019 Mohammadreza Raddanipour. All rights reserved.
//

#include <bits/stdc++.h>
using namespace std;

const int MXN = 5e3 + 20;

vector<int> adj[MXN];
int mch[MXN], n, m;
bool vs[MXN], mchd[MXN], wn[MXN];

void npt() {
    cin >> n >> m;
    for (int i = 0; i < m; i++) {
        int u, v;
        cin >> u >> v;
        adj[--u].push_back(--v);
    }
}

bool dfs(int v) {
    vs[v] = 1;
    for (auto u: adj[v])
        if (mch[u] == -1 || (!vs[mch[u]] && dfs(mch[u]))) {
            mch[u] = v;
            mchd[v] = 1;
            return 1;
        }
    return 0;
}

void mm() {
    for (int i = 0; i < n; i++) {
        memset(vs, 0, sizeof vs);
        dfs(i);
    }
}

void slv() {
    memset(vs, 0, sizeof vs);
    for (int i = 0; i < n;  i++)
        if (!mchd[i])
            dfs(i);
    for (int i = 0; i < n; i++)
        if (!vs[i])
            cout << "Slavko\n";
        else
            cout << "Mirko\n";
}

int main() {
    memset(mch, -1, sizeof mch);
    npt();
    mm();
    slv();
    return 0;
}
#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...
#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...