Submission #984796

#TimeUsernameProblemLanguageResultExecution timeMemory
984796AiperiiiSwapping Cities (APIO20_swap)C++14
0 / 100
102 ms17056 KiB
#include <bits/stdc++.h>
#include "swap.h"
#define ff first
#define ss second
#define pb push_back
#define all(x) x.begin(),x.end()
using namespace std;
const int N=1e5+5;
int sz[N];
multiset <int> ms;
int n;
void init(int N, int M,vector<int> U,vector<int> V,vector<int> W) {
    n=N;
    for(int i=0;i<M;i++){
        sz[V[i]]=W[i];
        ms.insert(sz[V[i]]);
    }
}

int getMinimumFuelCapacity(int X, int Y) {
    if(n<=3)return -1;
    int ans=0;
    ms.erase(ms.find(sz[X]));
    ms.erase(ms.find(sz[Y]));
    if(X==0 or Y==0 ){
        ans=max({sz[X],sz[Y],*ms.begin()});
        int x=*ms.begin();
        ms.erase(ms.begin());
        ans=max(ans,*ms.begin());
        if(sz[X]!=0)ms.insert(sz[X]);
        if(sz[Y]!=0)ms.insert(sz[Y]);
        ms.insert(x);
    }
    else{
        ans=max({sz[X],sz[Y],*ms.begin()});
        ms.insert(sz[X]);
        ms.insert(sz[Y]);
    }
    return ans;
}

/*signed main(){
    ios_base::sync_with_stdio();
    cin.tie(0);cout.tie(0);
    int n,m;
    cin>>n>>m;
    vector <int> a(m),b(m),c(m);
    for(int i=0;i<m;i++){
        cin>>a[i]>>b[i]>>c[i];
    }
    init(n,m,a,b,c);
    int q;
    cin>>q;
    while(q--){
        int u,v;
        cin>>u>>v;
        cout<<getMinimumFuelCapacity(u,v)<<"\n";
    }
}*/
/*
 3
 1 10
 3 10
 8 15
 
2
1 2
2 3
*/
#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...