Submission #981043

#TimeUsernameProblemLanguageResultExecution timeMemory
981043Abito자매 도시 (APIO20_swap)C++17
0 / 100
2083 ms13972 KiB
#include "swap.h" #include <bits/stdc++.h> #define F first #define S second #define pb push_back using namespace std; const int NN=1e5+5; int n,m,vis[NN],mid,xx,yy; vector<pair<int,int>> adj[NN]; void dfs(int x){ vis[x]++; if (x==yy) return; for (auto u:adj[x]){ if (vis[u.F]==2 || u.S>mid) continue; dfs(u.F); }return; } void init(int N, int M, vector<int> U, vector<int> V, vector<int> W) { n=N,m=M; for (int i=0;i<m;i++){ adj[U[i]].pb({V[i],W[i]}); adj[V[i]].pb({U[i],W[i]}); } return; } int getMinimumFuelCapacity(int X, int Y) { int l=1,r=1e9,ans=-1; mid=(l+r)/2; while (l<=r){ mid=(l+r)/2; xx=X,yy=Y; bool ok=false; for (int i=0;i<n;i++) vis[i]=0; vis[X]=1; dfs(X); ok|=(vis[Y]==2); swap(xx,yy); for (int i=0;i<n;i++) vis[i]=0; vis[Y]=1; dfs(Y); ok|=(vis[X]==2); if (ok){ ans=mid; r=mid-1; }else l=mid+1; }return ans; }
#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...