Submission #865968

#TimeUsernameProblemLanguageResultExecution timeMemory
865968jhinezeal123Commuter Pass (JOI18_commuter_pass)C++17
100 / 100
216 ms26176 KiB
#include <bits/stdc++.h> #define int long long #define ii pair<int, int> #define iii pair<int,ii> #define vii vector<ii> #define fi first #define se second #define endl '\n' using namespace std; const double eps = 0.000001; const int mod = 1000000007; const int N = 100001; const int MATRIX_SIZE = 3; int n,m,s,t,u,v,du[N],dv[N],ds[N],dpu[N],dpv[N]; vector <ii> G[N]; bool vi[N]; void Dijk(int x,int *dist){ fill(dist+1,dist+n+1,1e18); dist[x]=0; priority_queue <ii,vector <ii>, greater <ii>> xet; xet.push({0,x}); while (xet.size()){ ii tam=xet.top(); xet.pop(); if (tam.fi>dist[tam.se]) continue; for (auto htc:G[tam.se]){ if (dist[htc.fi]>htc.se+tam.fi){ // cout<<htc.fi<<' '<<htc.se<<' '<<tam.fi<<endl; dist[htc.fi]=htc.se+tam.fi; xet.push({dist[htc.fi],htc.fi}); } } } // dist[0]=2; } void Dp(){ fill(ds+1,ds+n+1,1e18); ds[s]=0; fill(dpu,dpu+n+1,1e18); fill(dpv,dpv+n+1,1e18); dpu[s]=du[s]; dpv[s]=dv[s]; priority_queue <iii,vector <iii>,greater<iii>> xet; xet.push({0,{s,0}}); while (xet.size()){ iii tam=xet.top(); int dist=tam.fi; int node=tam.se.fi; int par=tam.se.se; xet.pop(); if (dist>ds[node]) continue; if (dpu[node]+dpv[node]>min(dpu[par],du[node])+min(dpv[par],dv[node])){ dpu[node]=min(dpu[par],du[node]); dpv[node]=min(dpv[par],dv[node]); } // cout<<node<<' '<<dpu[node]<<' '<<dpv[node]<<' '<<par<<endl; if (!vi[node]){ vi[node]=true; for (auto x:G[node]){ if (ds[x.fi]>=x.se+dist){ ds[x.fi]=x.se+dist; xet.push({ds[x.fi],{x.fi,node}}); } } } } } void solve(){ cin>>n>>m>>s>>t>>u>>v; for (int i=1,s1,s2,s3;i<=m;++i){ cin>>s1>>s2>>s3; G[s2].push_back({s1,s3}); G[s1].push_back({s2,s3}); } Dijk(u,du); Dijk(v,dv); // cout<<du[3]; // swap(t,s); Dp(); cout<<min(dpu[t]+dpv[t],du[v]); } main() { //freopen("ok.inp","r",stdin); //freopen("ok.out","w",stdout); ios_base::sync_with_stdio(0); cin.tie(0); solve(); }

Compilation message (stderr)

commuter_pass.cpp:83:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   83 | main() {
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...