제출 #1345397

#제출 시각아이디문제언어결과실행 시간메모리
1345397killerzaluuSwapping Cities (APIO20_swap)C++20
0 / 100
41 ms5928 KiB
#include <bits/stdc++.h>
using namespace std;

int n;
vector<int> wv;
int mn1, mn2, mn3;

void init(int N, int M, vector<int> U, vector<int> V, vector<int> W) {
    n = N;
    wv.assign(n, (int)1e9);

    vector<pair<int,int>> a; // (weight, node)

    for (int i = 0; i < M; i++) {
        int other = (U[i] == 0 ? V[i] : U[i]);
        wv[other] = W[i];
        a.push_back({W[i], other});
    }

    sort(a.begin(), a.end());

    mn1 = a[0].second;
    mn2 = a[1].second;
    mn3 = a[2].second;
}

int getMinimumFuelCapacity(int X, int Y) {
    if (n <= 3) return -1;

    int best;
    if (mn1 != X && mn1 != Y) best = wv[mn1];
    else if (mn2 != X && mn2 != Y) best = wv[mn2];
    else best = wv[mn3];

    return max({wv[X], wv[Y], best});
}
#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...