제출 #1164680

#제출 시각아이디문제언어결과실행 시간메모리
1164680just자매 도시 (APIO20_swap)C++20
0 / 100
225 ms25500 KiB
#include "bits/stdc++.h"
using namespace std;

#define vec vector
#define all(x) x.begin(), x.end()


int N, M;
vec<int> U, V, W;
vec<vec<int>> adj;

vec<int> weights;
map<pair<int,int>, int> edges;

int ans = 0;

void init(int n, int m, vec<int> u, vec<int> v, vec<int> w) {
    N = n;
    M = m;
    U = u;
    V = v;
    W = w;

    assert(U.size() == M);
    assert(V.size() == M);
    assert(W.size() == M);


    adj.resize(N);
    for (int i = 0; i < M; i++) {
        adj[U[i]].push_back(V[i]);
        adj[V[i]].push_back(U[i]);
    }

    for (int i = 0; i < M; i++) {
        edges[{U[i], V[i]}] = W[i];
        edges[{V[i], U[i]}] = W[i];
    }

    weights = W;
    sort(all(weights));
}
    

int getMinimumFuelCapacity(int x, int y) {
    if (x > y) swap(x, y);
    if (N <= 2) return -1;

    if (N == 3 && x != 0 && y != 0) return -1;

    if (x == 0) {
        return max({weights[1], edges[{0, y}]});
    } else {
        return max({weights[2], edges[{0, x}], edges[{0, y}]});
    }


    
}

#ifdef debug
signed main() {}
#endif
#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...