Submission #406002

#TimeUsernameProblemLanguageResultExecution timeMemory
406002Maqsut_03Swapping Cities (APIO20_swap)C++17
7 / 100
138 ms14976 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;

bool f = 0, f1 = 1;
pv v;
llv w[N];
int a[N], b, k = 0;

void init(int N, int M, vector<int> U, vector<int> V, vector<int> W) 
{
	if (N > 3) f = 1;
	for (int i=0; i<M; i++) v.ppb(W[i], V[i]);
	sort(v.begin(), v.end());
	b = v[2].ff;
	for (int i=0; i<M; i++) a[V[i]] = W[i];
	
	for (int i=0; i<M; i++)
	{
		w[V[i]].pb(U[i]);
		w[U[i]].pb(V[i]);
		k = max(k, W[i]);
	}
	for (int i=0; i<N; i++) f1 &= (w[i].sz == 2);
	return ;
}
int getMinimumFuelCapacity(int X, int Y) 
{
	if (f1) return k;
	if (f)
	    return max({b, a[X], a[Y]});
	return -1;
}
#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...