제출 #90345

#제출 시각아이디문제언어결과실행 시간메모리
90345Atashka01Evacuation plan (IZhO18_plan)C++11
41 / 100
4005 ms19772 KiB
//Euzibillahiminesseytanirracim Bismillahirrahmanirrahim /* ID: TASK: LANG: C++ */ #include <bits/stdc++.h> #define pb push_back #define ll long long #define ff first #define ss second #define mp make_pair #define PII pair<int,int> #define inf 1000000001 using namespace std; int n, m, x, y, z, k, mx, t, d[100001], kd[100001], a[100001]; vector<pair<int,int>> v[100001]; priority_queue<pair<int,int>> q; queue<int>qq; int main() { cin>>n>>m; for(int i=1;i<=m;i++){ cin>>x>>y>>z; v[x].pb({y,z}); v[y].pb({x,z}); } for(int i=1;i<=n;i++) d[i] = inf; cin>>k; for(int i=1;i<=k;i++){ cin>>a[i]; d[a[i]] = 0; q.push({0,a[i]}); } while(!q.empty()){ int b = q.top().ss; q.pop(); if(kd[b] == 1) continue; kd[b] = 1; for(auto s:v[b]){ if(d[s.ff] > d[b] + s.ss){ d[s.ff] = d[b] + s.ss; q.push({-d[s.ff] , s.ff}); } } } cin>>t; while(t--){ int l, r, p = 0; cin>>x>>y; for(auto s:v[x]) if(s.ff == y) p = 1; if(p == 1){ cout<<min(d[x], d[y])<<"\n"; continue; } l = 0; r = d[x]; while(l <= r){ int mid = (l + r) / 2; for(int i=1;i<=n;i++) kd[i] = 0; kd[x] = 1; qq.push(x); while(!qq.empty()){ int b = qq.front(); qq.pop(); for(auto s:v[b]){ if(kd[s.ff] == 1 || d[s.ff] < mid) continue; kd[s.ff] = 1; qq.push(s.ff); } } if(kd[y] == 1) l = mid + 1; else r = mid - 1; } cout<<l - 1<<"\n"; } } /* _________oBBBBB8o oBBBBBBB8 _____o8BBBBBBBBBBB BBBBBBBBB8 o88o ___o8BBBBBB**8BBBB BBBBBBBBBB oBBBBBBBo __oBBBBBBB* *** BBBBBBBBBB BBBBBBBBBBo _8BBBBBBBBBBooooo *BBBBBBB8 *BB* 8BBBBBBo _8BBBBBBBBBBBBBBBB8ooBBBBBBB8 8BBBBBBB8 __*BBBBBBBBBBBBBBBBBBBBBBBBBB8 o88BB88BBBBBBBBBBBB ____*BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB8 ______**8BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB* ___________*BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB8* ____________*BBBBBBBBBBBBBBBBBBBBBBBB8888** _____________BBBBBBBBBBBBBBBBBBBBBBB* _____________*BBBBBBBBBBBBBBBBBBBBB* ______________*BBBBBBBBBBBBBBBBBB8 _______________*BBBBBBBBBBBBBBBB* ________________8BBBBBBBBBBBBBBB8 _________________8BBBBBBBBBBBBBBBo __________________BBBBBBBBBBBBBBB8 __________________BBBBBBBBBBBBBBBB __________________8BBBBBBBBBBBBBBB8 __________________*BBBBBBBBBBBBBBBB __________________8BBBBBBBBBBBBBBBB8 _________________oBBBBBBBBBBBBBBBBBB ________________oBBBBBBBBBBBBBBBBBBB ________________BBBBBBBBBBBBBBBBBBBB _______________8BBBBBBBBBBBBBBBBBBB8 ______________oBBBBBBBBB88BBBBBBBBB8 ______________8BBBBBBBBB*8BBBBBBBBB* ______________BBBBBBBBB* BBBBBBBBB8 ______________BBBBBBBB8 oBBBBBBBBB* ______________8BBBBBBB oBBBBBBBB* ______________BBBBBBB* 8BBBBBBB* _____________8BBBBBB* BBBBBBB* ____________8BBBBBB8 oBBBBBB8 ___________8BBBBBB8 8BBBBBB* __________oBBBBBB8 BBBBBBB8 __________BBBBBBB8 BBBBBBBB* _________oBBBBBBB8 BBBBBBBB _________8BBBBBB8 BBBBBBB* _________BBBBBB* 8BBBBB* ________oBBBB8 BBBBB* ________oBBB8 BBBB* ________BBBB8 8BBBBo _______8BBBB* oBBBBBBo ______8BBBB* *BBBBBBBB8o ______BBBBB* *88BBBo */
#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...