Submission #1299432

#TimeUsernameProblemLanguageResultExecution timeMemory
1299432brover29Evacuation plan (IZhO18_plan)C++17
0 / 100
11 ms23876 KiB
#include <bits/stdc++.h> //qwerty47924692 using namespace std; using ll = long long; const ll N=5e5+29; const string br="617283"; ll n,m,q,d[N],l[N],r[N],k,c[N],used[N],s[N],t[N],pr[N],sz[N]; vector<pair<ll,ll>>g[N]; vector<pair<ll,ll>>vc; vector<ll>v[N]; void djikstra(){ priority_queue<pair<ll,ll>>q; for(ll i=1;i<=n;i++)d[i]=1e18; for(ll i=1;i<=k;i++){ d[c[i]]=0; q.push({0,c[i]}); } while(q.size()){ ll v=q.top().second; q.pop(); if(used[v])continue; // cout<<v<<' '; used[v]=1; for(auto [to,w]:g[v]){ if(d[to]>d[v]+w){ d[to]=d[v]+w; q.push({-d[to],to}); } } } } ll get(ll x){ return (x==pr[x] ? x : pr[x]=get(pr[x])); } void uni(ll v,ll u){ v=get(v); u=get(u); if(v==u)return; if(sz[v]<sz[u])swap(v,u); sz[v]+=sz[u]; pr[u]=v; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); #ifndef ONLINE_JUDGE freopen("input.txt", "r", stdin); #endif cin>>n>>m; for(ll i=1;i<=m;i++){ ll a,b,w; cin>>a>>b>>w; g[a].push_back({b,w}); g[b].push_back({a,w}); } cin>>k; for(ll i=1;i<=k;i++)cin>>c[i]; cin>>q; for(ll i=1;i<=q;i++){ cin>>s[i]>>t[i]; l[i]=0; r[i]=n-1; } djikstra(); for(ll i=1;i<=n;i++){ vc.push_back({d[i],i}); // cout<<i<<' '<<d[i]<<'\n'; // cout<<d[i]<<' '; } sort(vc.rbegin(),vc.rend()); // for(auto [a,b]:vc){ // cerr<<a<<' '<<b<<'\n'; // } for(ll i=1;i<20;i++){ for(ll i=0;i<=n-1;i++)v[i].clear(); for(ll i=1;i<=n;i++){ used[i]=0; pr[i]=i; sz[i]=1; } for(ll i=1;i<=q;i++){ ll md=(l[i]+r[i])>>1; v[md].push_back(i); } ll ii= 0; for(auto [x,i]:vc){ used[i]=1; for(auto [to,w]:g[i]){ if(used[to])uni(i,to); } for(ll j:v[ii]){ if(get(s[j])==get(t[j])){ // if(j==1)cout<<ii<<' '; r[j]=ii; } else l[j]=ii+1; } ii++; } } for(ll i=1;i<=q;i++){ cout<<vc[l[i]].first<<'\n'; } }

Compilation message (stderr)

plan.cpp: In function 'int main()':
plan.cpp:49:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   49 |         freopen("input.txt", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#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...