Submission #334438

#TimeUsernameProblemLanguageResultExecution timeMemory
334438tengiz05Evacuation plan (IZhO18_plan)C++17
35 / 100
1856 ms97636 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define FASTIO ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); #define all(x) (x).begin(), (x).end() #define pb push_back #define pii pair<int, int> #define ff first #define ss second #define PI acos(-1) #define ld long double const int mod = 1e9+7, N = 1e5+5; int msb(int val){return sizeof(int)*8-__builtin_clzll(val);} int a[N], n, m, k; vector<pii> edges[N]; map<pii, bool> exist; int mid, dest; vector<int> dist(N, mod*mod); vector<bool> used; bool check(int u){ if(dist[u] < mid)return false; used[u] = true; bool pos = false; if(u == dest)pos = true; for(auto [v, c] : edges[u]){ if(!used[v])pos |= check(v); }return pos; } void solve(int test_case){ int i, j; cin >> n >> m; for(i=0;i<m;i++){ int u, v, c; cin >> u >> v >> c; exist[{u,v}] = true; exist[{v,u}] = true; edges[u].pb({v,c}); edges[v].pb({u,c}); } priority_queue<pii, vector<pii>, greater<pii>> q; cin >> k; for(i=0;i<k;i++){ int u; cin >> u; dist[u] = 0; q.push({0, u}); } while(!q.empty()){ auto [d, u] = q.top(); q.pop(); if(d > dist[u])continue; assert(d == dist[u]); for(auto [v, c] : edges[u]){ if(dist[v] > d+c){ dist[v] = d+c; q.push({dist[v], v}); } } } int Q; cin >> Q; while(Q--){ int u, v; cin >> u >> v; if(exist[{u, v}])cout << min(dist[u], dist[v]) << '\n'; else { int l=0, r=1500; dest = v; while(l+1 < r){ used.assign(n+1, 0); mid = (l+r)/2; if(check(u)){ l = mid; }else { r = mid; } }cout << l << '\n'; } } return; } signed main(){ FASTIO; #define MULTITEST 0 #if MULTITEST int ___T; cin >> ___T; for(int T_CASE = 1; T_CASE <= ___T; T_CASE++) solve(T_CASE); #else solve(1); #endif return 0; }

Compilation message (stderr)

plan.cpp: In function 'void solve(long long int)':
plan.cpp:30:9: warning: unused variable 'j' [-Wunused-variable]
   30 |  int i, j;
      |         ^
#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...