Submission #597266

#TimeUsernameProblemLanguageResultExecution timeMemory
597266OzySwapping Cities (APIO20_swap)C++17
0 / 100
84 ms7728 KiB
#include "swap.h"
#include <bits/stdc++.h>
using namespace std;
#define rep(i,a,b) for (int i = (a); i <= (b); i++)
#define repa(i,a,b) for (int i = (a); i >= (b); i--)
#define lli long long int
#define debug(a) cout << #a << " = " << a << endl
#define debugsl(a) cout << #a << " = " << a << ", "

#define MAX 100000
#define u second.first
#define v second.second
#define w first

lli peso[MAX+2],a,b,c,n,m;
vector<pair<lli,lli> > orden;

void init(int N, int M,std::vector<int> U, std::vector<int> V, std::vector<int> W) {
    n = N;
    m = M;

    rep(i,0,m-1) {
        peso[V[i]] = W[i];
        orden.push_back({W[i],V[i]});
    }
    sort(orden.begin(), orden.end());
}

int getMinimumFuelCapacity(int X, int Y) {
    X++;
    Y++;

    if (n < 4) return -1;

    c = peso[Y];
    if (X == 0) {
        if (orden[0].second == Y) X = orden[1].second;
        else X = orden[0].second;
    }
    b = peso[X];

    for (auto act : orden) {
        if (act.second == Y || act.second == X) continue;
        a = act.first;
        break;
    }

    a = max(a,b);
    a = max(a,c);
    return a;
}
#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...