171702025-05-28 11:02:43szilGame on a Matrixcpp17Wrong answer 30/1005.091s17240 KiB
#include <bits/stdc++.h>

using namespace std;
using ll = long long;

const int MAXN = 1001;

int a[MAXN][MAXN], n;

bool f(int x) {
    vector<vector<int>> g(n+1);
    vector<int> mt(n+1, -1);
    vector<bool> vis(n+1);
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            if (a[i][j] >= x) g[i].emplace_back(j);
        }
    }

    auto try_kuhn = [&](auto &&self, int u) -> bool {
        if (vis[u]) return false;
        vis[u] = 1;
        for (int v : g[u]) {
            if (mt[v] == -1 || self(self, v)) {
                mt[v] = u;
                return true;
            }
        }
        return false;
    };
    for (int i = 1; i <= n; i++) {
        fill(vis.begin(), vis.end(), 0);
        try_kuhn(try_kuhn, i);
    }
    return count(mt.begin(), mt.end(), -1) == 1;
}

void solve() {
    cin >> n;
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            cin >> a[i][j];
        }
    }
    int lo = 0, hi = 1e9;
    while (lo < hi) {
        int mid = (lo + hi + 1) / 2;
        if (f(mid)) lo = mid;
        else hi = mid-1;
    }
    cout << lo << "\n";
}

int main() {
    ios::sync_with_stdio(0); cin.tie(0);
    int t = 1; 
    // cin >> t;
    while (t--) solve();
    return 0;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted1ms316 KiB
subtask20/10
2Wrong answer1ms316 KiB
3Accepted1ms316 KiB
4Wrong answer1ms316 KiB
5Wrong answer1ms316 KiB
6Accepted1ms564 KiB
7Accepted1ms552 KiB
8Wrong answer1ms508 KiB
9Accepted1ms316 KiB
10Wrong answer1ms316 KiB
11Accepted1ms508 KiB
12Accepted1ms316 KiB
13Accepted1ms316 KiB
14Wrong answer1ms316 KiB
15Wrong answer1ms508 KiB
16Accepted1ms316 KiB
17Accepted1ms316 KiB
18Wrong answer1ms316 KiB
19Accepted1ms316 KiB
20Accepted1ms320 KiB
21Wrong answer1ms676 KiB
22Accepted1ms508 KiB
23Wrong answer1ms316 KiB
24Wrong answer1ms532 KiB
subtask330/30
25Accepted1ms316 KiB
26Accepted2ms392 KiB
27Accepted4ms820 KiB
28Accepted10ms1332 KiB
29Accepted32ms2108 KiB
30Accepted32ms1844 KiB
31Accepted28ms1844 KiB
32Accepted12ms1332 KiB
33Accepted19ms1844 KiB
34Accepted6ms1076 KiB
subtask40/45
35Accepted8ms820 KiB
36Accepted8ms1012 KiB
37Accepted8ms820 KiB
38Accepted8ms1012 KiB
39Accepted8ms960 KiB
40Wrong answer7ms820 KiB
41Accepted8ms964 KiB
42Accepted7ms972 KiB
43Accepted8ms732 KiB
44Accepted8ms820 KiB
45Accepted8ms960 KiB
46Accepted8ms964 KiB
47Accepted8ms956 KiB
48Accepted8ms960 KiB
49Accepted8ms820 KiB
50Accepted43ms820 KiB
51Accepted9ms976 KiB
52Accepted26ms820 KiB
53Accepted9ms1048 KiB
54Accepted9ms824 KiB
55Wrong answer13ms820 KiB
56Wrong answer25ms820 KiB
57Accepted1ms432 KiB
58Accepted2ms564 KiB
subtask50/15
59Accepted1.526s16072 KiB
60Wrong answer1.363s15928 KiB
61Accepted1.61s15924 KiB
62Accepted1.432s15924 KiB
63Accepted1.526s15924 KiB
64Accepted1.56s15924 KiB
65Accepted1.552s15924 KiB
66Accepted1.455s15924 KiB
67Accepted1.541s15924 KiB
68Accepted1.567s15924 KiB
69Accepted1.537s15920 KiB
70Accepted1.592s15924 KiB
71Accepted763ms14900 KiB
72Accepted1.042s15156 KiB
73Accepted1.564s16096 KiB
74Time limit exceeded5.083s17040 KiB
75Time limit exceeded5.091s15932 KiB
76Time limit exceeded5.081s17112 KiB
77Time limit exceeded5.077s17120 KiB
78Time limit exceeded5.08s17240 KiB
79Accepted4.681s15932 KiB