Submission #559222

# Submission time Handle Problem Language Result Execution time Memory
559222 2022-05-09T14:12:11 Z _karan_gandhi Race (IOI11_race) C++17
9 / 100
119 ms 51892 KB
#include "race.h"
#include <bits/stdc++.h>

using namespace std;

#define ll long long
#define all(v) v.begin(), v.end()
#define pl(var) " [" << #var << ": " << (var) << "] "

vector<vector<pair<int, int>>> adj;
vector<vector<int>> dp;
// multiset<int> distances;
int k;
int ans = -1;

void dfs(int u, int par) {
    // cout << pl(u) << endl;
    for (auto [v, wt] : adj[u]) {
        if (v == par) continue;
        // cout << pl(v) << pl(wt) << endl;
        dfs(v, u);

        if (wt <= k) dp[u][wt] = 1;
        for (int i = wt + 1; i <= k; i++) {
            if (dp[u][i] != -1) dp[u][i] = min(dp[u][i], ((dp[v][i - wt] == -1) ? dp[u][i] : (dp[v][i - wt] + 1)));
            else dp[u][i] = dp[v][i - wt] + (dp[v][i - wt] != -1 ? 1 : 0);
        }

        // cout << pl(dp[u][k]) << endl;

        if (ans != -1) ans = min(ans, dp[u][k] == -1 ? ans : dp[u][k]);
        else ans = dp[u][k];
    }
}

void dfs1(int u, int par) {
    for (int i = 0; i <= k; i++) {
        ans = min(ans, dp[u][k] + dp[u][k - 1]);
    }
}

int best_path(int n, int _k, int edges[][2], int weight[]) {
    adj = vector<vector<pair<int, int>>>(n);
    k = _k;
    // ans = n - 1;
    dp = vector<vector<int>>(n, vector<int>(k + 1, -1));

    for (int i = 0; i < n - 1; i++) {
        adj[edges[i][0]].emplace_back(edges[i][1], weight[i]);
        adj[edges[i][1]].emplace_back(edges[i][0], weight[i]);
    }
    dfs(0, 0);
    // cout << pl(dp[0][3]) << endl;

    return ans;
}

# Verdict Execution time Memory Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 1 ms 308 KB Output is correct
4 Correct 1 ms 312 KB Output is correct
5 Correct 1 ms 340 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 1 ms 340 KB Output is correct
8 Correct 1 ms 340 KB Output is correct
9 Correct 1 ms 340 KB Output is correct
10 Correct 1 ms 340 KB Output is correct
11 Correct 0 ms 340 KB Output is correct
12 Correct 0 ms 340 KB Output is correct
13 Correct 1 ms 340 KB Output is correct
14 Correct 1 ms 340 KB Output is correct
15 Correct 1 ms 308 KB Output is correct
16 Correct 1 ms 340 KB Output is correct
17 Correct 1 ms 340 KB Output is correct
18 Correct 1 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 1 ms 308 KB Output is correct
4 Correct 1 ms 312 KB Output is correct
5 Correct 1 ms 340 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 1 ms 340 KB Output is correct
8 Correct 1 ms 340 KB Output is correct
9 Correct 1 ms 340 KB Output is correct
10 Correct 1 ms 340 KB Output is correct
11 Correct 0 ms 340 KB Output is correct
12 Correct 0 ms 340 KB Output is correct
13 Correct 1 ms 340 KB Output is correct
14 Correct 1 ms 340 KB Output is correct
15 Correct 1 ms 308 KB Output is correct
16 Correct 1 ms 340 KB Output is correct
17 Correct 1 ms 340 KB Output is correct
18 Correct 1 ms 340 KB Output is correct
19 Incorrect 1 ms 212 KB Output isn't correct
20 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 1 ms 308 KB Output is correct
4 Correct 1 ms 312 KB Output is correct
5 Correct 1 ms 340 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 1 ms 340 KB Output is correct
8 Correct 1 ms 340 KB Output is correct
9 Correct 1 ms 340 KB Output is correct
10 Correct 1 ms 340 KB Output is correct
11 Correct 0 ms 340 KB Output is correct
12 Correct 0 ms 340 KB Output is correct
13 Correct 1 ms 340 KB Output is correct
14 Correct 1 ms 340 KB Output is correct
15 Correct 1 ms 308 KB Output is correct
16 Correct 1 ms 340 KB Output is correct
17 Correct 1 ms 340 KB Output is correct
18 Correct 1 ms 340 KB Output is correct
19 Incorrect 119 ms 51892 KB Output isn't correct
20 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 1 ms 308 KB Output is correct
4 Correct 1 ms 312 KB Output is correct
5 Correct 1 ms 340 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 1 ms 340 KB Output is correct
8 Correct 1 ms 340 KB Output is correct
9 Correct 1 ms 340 KB Output is correct
10 Correct 1 ms 340 KB Output is correct
11 Correct 0 ms 340 KB Output is correct
12 Correct 0 ms 340 KB Output is correct
13 Correct 1 ms 340 KB Output is correct
14 Correct 1 ms 340 KB Output is correct
15 Correct 1 ms 308 KB Output is correct
16 Correct 1 ms 340 KB Output is correct
17 Correct 1 ms 340 KB Output is correct
18 Correct 1 ms 340 KB Output is correct
19 Incorrect 1 ms 212 KB Output isn't correct
20 Halted 0 ms 0 KB -