제출 #1131389

#제출 시각아이디문제언어결과실행 시간메모리
1131389Champ_Naman자매 도시 (APIO20_swap)C++20
7 / 100
379 ms16900 KiB
#include<bits/stdc++.h>
using namespace std;
#define nl '\n'
#include "swap.h"

const int N = 1e5;
vector<pair<int,int>> g[N];

int wt[N];
multiset<int> st;

void init(int n, int m, vector<int> u, vector<int> v, vector<int> w){
   for(int i=0; i<m; i++){
      g[u[i]].push_back({v[i], w[i]});
      g[v[i]].push_back({u[i], w[i]});
      wt[v[i]] = w[i];
      st.insert(w[i]);
   }

   return;
}

int getMinimumFuelCapacity(int x, int y){
   if(y == 0) swap(x, y);

   if(x == 0){
      if(st.size() <= 2) return -1;

      st.erase(st.find(wt[y]));
      int mn = max(*st.begin(), *next(st.begin()));
      st.insert(wt[y]);

      return max(mn, wt[y]);
   }

   if(st.size() == 2) return -1;

   st.erase(st.find(wt[x]));
   st.erase(st.find(wt[y]));
   int mn = *st.begin();
   st.insert(wt[x]);
   st.insert(wt[y]);

   return max({wt[y], wt[x], mn});
}
#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...