Submission #1131372

#TimeUsernameProblemLanguageResultExecution timeMemory
1131372Champ_NamanSwapping Cities (APIO20_swap)C++20
0 / 100
2095 ms589824 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 ans = 0, cnt = 0;
void dfs(int v, int p, int f, int d){
   for(auto [ch, w] : g[v]){
      if(ch == f) ans = max(ans, max(d, w)), cnt++;
      if(ch != p and ch != f){
         dfs(ch, v, f, max(d, w));
      }
   }
}

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]});
   }
   return;
}

int getMinimumFuelCapacity(int x, int y){
   dfs(x, -1, y, 0);

   return (cnt < 2 ? -1 : ans);
}

// int main(){
//   int N, M;
//   std::cin>>N>>M;
  
//   std::vector<int> U(M), V(M), W(M);
//   for (int i = 0; i < M; ++i) {
//     assert(3 == scanf("%d %d %d", &U[i], &V[i], &W[i]));
//   }

//   int Q;
//   assert(1 == scanf("%d", &Q));

//   std::vector<int> X(Q), Y(Q);
//   for (int i = 0; i < Q; ++i) {
//     assert(2 == scanf("%d %d", &X[i], &Y[i]));
//   }

//   init(N, M, U, V, W);
  
//   std::vector<int> minimum_fuel_capacities(Q);
//   for (int i = 0; i < Q; ++i) {
//     minimum_fuel_capacities[i] = getMinimumFuelCapacity(X[i], Y[i]);
//   }

//   for (int i = 0; i < Q; ++i) {
//     printf("%d\n", minimum_fuel_capacities[i]);
//   }
  
//   return 0;
// }
#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...