Submission #974674

#TimeUsernameProblemLanguageResultExecution timeMemory
974674XXBabaProBerkaySwapping Cities (APIO20_swap)C++17
0 / 100
2036 ms15032 KiB
#include "swap.h" #include <vector> #include <bits/stdc++.h> using namespace std; #define F first #define S second using ll = long long; bool ans; vector<bool> vis; vector<vector<pair<int, int>>> adj; void init(int N, int M, vector<int> U, vector<int> V, vector<int> W) //init(N, M, U, V, W) { adj.resize(N); vis.resize(N); for (int i = 0; i < M; i++) { adj[U[i]].emplace_back(V[i], W[i]); adj[V[i]].emplace_back(U[i], W[i]); } } void DFS(int k, int p, int& t, int& x) { if (vis[k]) { ans = 1; return; } vis[k] = 1; for (auto i : adj[k]) if (i.S <= x && i.F != p) DFS(i.F, k, t, x); } int getMinimumFuelCapacity(int X, int Y) { int l = 1, r = 1e9; while (l <= r) { int m = (l + r) >> 1; ans = 0; fill(vis.begin(), vis.end(), 0); DFS(X, X, Y, m); if (ans && vis[Y]) r = m - 1; else l = m + 1; } return (l < 1e9 ? l : -1); }
#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...