Submission #405947

#TimeUsernameProblemLanguageResultExecution timeMemory
405947Maqsut_03Swapping Cities (APIO20_swap)C++17
0 / 100
145 ms15364 KiB
#include "swap.h" #include<iostream> #include<vector> #include<algorithm> #include<map> #include<set> #include<queue> #include<deque> #define ll int #define pl pair<ll, ll> #define llv vector<ll> #define pb push_back #define ppb(x, y) push_back({x, y}) #define pv vector<pl> #define sz size() #define ss second #define ff first using namespace std; const int N = 2 * 1e5 + 3; ll q = 0, p = 0, n, m, a, b, c; llv v(N); pv v0[N]; pl w[N]; bool f = 1; void init(int N, int M, vector<int> U, vector<int> V, vector<int> W) { n = N; m = M; for (int i=0; i<m; i++) { v0[V[i]].ppb(U[i], W[i]); v0[U[i]].ppb(V[i], W[i]); } for (int i=0; i<n; i++) { if (v0[i].sz == 1) q++; if (v0[i].sz == 2) p++; } if (q == 2 && q + p == n) f = 0; for (int i=0; i<m; i++) w[i] = {W[i], V[i]}; for (int i=0; i<m; i++) v[w[i].ss] = w[i].ff; sort(w, w+m); a = w[0].ss; b = w[1].ss; c = w[2].ss; return ; } int getMinimumFuelCapacity(int X, int Y) { if (f == 0) return -1; ll ans; if ((X == a && Y == b) || (X == b && Y == a)) ans = c ; else if (X == a || Y == a) ans = b; else ans = a; ans = max({ans, v[Y], v[X]}); return ans; }
#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...