이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
//
//  fstmm.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;
int n, m, mch[MXN];
vector<int> adj[MXN];
bool mchd[MXN], vs[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 (bool flg = 1; flg;) {
        memset(vs, 0, sizeof vs);
        flg = 0;
        for (int i = 0; i < n; i++)
            if (!vs[i] && !mchd[i])
                flg |= dfs(i);
    }
}
int main() {
    memset(mch, -1, sizeof mch);
    npt();
    mm();
    for (int i = 0; i < n; i++)
        if (!vs[i])
            cout << "Slavko\n";
        else
            cout << "Mirko\n";
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |