Submission #743457

#TimeUsernameProblemLanguageResultExecution timeMemory
743457Mauve자매 도시 (APIO20_swap)C++14
6 / 100
447 ms15980 KiB
#include "swap.h"
#include<bits/stdc++.h>
#define pb push_back
#define ss second
#define ff first
using namespace std;
int l,r,i,j,ii,jj,k,n,m,mx,subtask=1;
vector< pair<int,int> > v[100000];
set< pair<int,int> > st;
void init(int N, int M, vector<int> U, vector<int> V, vector<int> W) {
    n=N;
    m=M;
    for(i=0;i<M;i++){
        v[U[i]].pb({V[i],W[i]});
        v[V[i]].pb({U[i],W[i]});
        mx=max(mx,W[i]);
        st.insert({W[i],V[i]});
    }
    for(i=0;i<n;i++) if(v[i].size()>2) subtask=2;
}
int getMinimumFuelCapacity(int X, int Y) {
    if(subtask==1){
        if(n>m) return -1;
        else return mx;
    }
    if(X==0 || Y==0 || n<=3) return -1;
    st.erase({v[X][0].ss,X});
    st.erase({v[Y][0].ss,Y});
    mx=max(v[X][0].ss,v[Y][0].ss);
    mx=max(mx,(*st.begin()).ff);
    st.insert({v[X][0].ss,X});
    st.insert({v[Y][0].ss,Y});
    return mx;
}
#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...