Submission #1362146

#TimeUsernameProblemLanguageResultExecution timeMemory
1362146SulASwapping Cities (APIO20_swap)C++20
7 / 100
51 ms6552 KiB
#include <bits/stdc++.h>
using namespace std;

vector<int> W, sorted, weight;

void init(int n, int m, vector<int> U, vector<int> V, vector<int> W) {
    weight.resize(n);
    for (int i = 0; i < n-1; i++)
        weight[V[i]] = W[i];
    sorted.resize(n-1);
    iota(sorted.begin(), sorted.end(), 1);
    sort(sorted.begin(), sorted.end(), [&](int x, int y) { return weight[x] < weight[y]; });
}

int getMinimumFuelCapacity(int x, int y) {
    set<int> nodes;
    if (x != 0) nodes.insert(x);
    if (y != 0) nodes.insert(y);
    for (int z : sorted) {
        nodes.insert(z);
        if (nodes.size() == 3) break;
    }
    if (nodes.size() < 3) return -1;
    int res = 0;
    for (int n : nodes)
        res = max(res, weight[n]);
    return res;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...