제출 #1131372

#제출 시각아이디문제언어결과실행 시간메모리
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...