Submission #1340534

#TimeUsernameProblemLanguageResultExecution timeMemory
1340534GoBananas69Closing Time (IOI23_closing)C++20
0 / 100
94 ms23244 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#include <set>
#include <queue>
#include <cmath>
#include <string>
typedef long long ll;
using namespace std;

vector<vector<pair<int, ll>>> adj;

void bfs(int st, vector<ll> &dist) {
    queue<int> q;
    q.push(st);
    dist[st] = 0;
    while (!q.empty()) {
        int u = q.front();
        q.pop();
        for (auto &e : adj[u]) {
            int v = e.first;
            ll w = e.second;
            if (dist[v] != -1) continue;
            dist[v] = dist[u] + w;
            q.push(v);
        }
    }
}

int max_score(int n, int x, int y, ll K, vector<int> U, vector<int> V, vector<int> W) {
    adj.resize(n, {});
    for (int i = 0; i < n - 1; ++i) {
        int u = U[i], v = V[i];
        ll w = W[i];
        adj[u].push_back({v, w});
        adj[v].push_back({u, w});
    }
    vector<ll> distX(n, -1), distY(n, -1);
    bfs(x, distX);
    bfs(y, distY);
    int sum = 0;
    int score = 0;
    int sz = n;
    for (int mask = 0; mask < (1 << sz); ++mask) {
        sum = 0;
        for (int i = 0; i < n; ++i) {
            if ((1 << i) & mask) sum += distX[i];
            else sum += distY[i];
            if (sum > K) break;
            score = max(score, i);
        }
    }
    return score;
}
#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...