Submission #169356

# Submission time Handle Problem Language Result Execution time Memory
169356 2019-12-20T04:59:44 Z pr3pony Programming Contest (POI11_pro) C++14
100 / 100
90 ms 1400 KB
#include <bits/stdc++.h>
using namespace std;
const int N = 505;
vector<int> gx[N];
int my[N];
int vx[N], vy[N], vcnt;
bool dead[N];
int cnt[N];
bool dfs(int x)
{
    if (vx[x] == vcnt)
        return false;
    vx[x] = vcnt;
    for (const int & y : gx[x]) {
        if (vy[y] == vcnt)
            continue;
        vy[y] = vcnt;
        if (!my[y] || dfs(my[y])) {
            my[y] = x;
            return true;
        }
    }
    return false;
}
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    int n, m, r, t, k;
    cin >> n >> m >> r >> t >> k;
    for (int i = 0; i < k; ++i) {
        int a, b;
        cin >> a >> b;
        gx[a].push_back(b);
    }
    int tot = 0, mat = 0;
    for (int i = 1; i <= m && i * r <= t; ++i)
        for (int u = 1; u <= n; ++u) {
            if (dead[u])
                continue;
            ++vcnt;
            if (dfs(u))
                tot += i * r, ++mat;
            else
                dead[u] = true;
        }
    cout << mat << ' ' << tot << '\n';
    for (int i = 1; i <= m; ++i)
        if (my[i])
            cout << my[i] << ' ' << i << ' ' << cnt[my[i]]++ * r << '\n';
}
# Verdict Execution time Memory Grader output
1 Correct 3 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 11 ms 504 KB Output is correct
2 Correct 11 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 31 ms 820 KB Output is correct
2 Correct 31 ms 888 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 77 ms 888 KB Output is correct
2 Correct 21 ms 504 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 69 ms 888 KB Output is correct
2 Correct 52 ms 632 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 9 ms 504 KB Output is correct
2 Correct 16 ms 888 KB Output is correct
3 Correct 90 ms 1012 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 82 ms 888 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 372 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 15 ms 604 KB Output is correct
2 Correct 71 ms 1400 KB Output is correct
3 Correct 2 ms 376 KB Output is correct