Submission #1167680

#TimeUsernameProblemLanguageResultExecution timeMemory
1167680edga1Commuter Pass (JOI18_commuter_pass)C++20
16 / 100
142 ms15020 KiB
#include <bits/stdc++.h> #pragma GCC optimize("O3,unroll-loops") #pragma GCC target("avx2,bmi,bmi2,popcnt,lzcnt") using namespace std; vector<pair<int,int>> e[100005]; void d(int s, vector<long long> &att){ att[s]=0; priority_queue<pair<long long,int>, vector<pair<long long,int>>, greater<pair<long long,int>>> pq; vector<int> seen(100005,0); pq.push({0,s}); while(!pq.empty()){ auto cur=pq.top(); int pos=cur.second; pq.pop(); if(!seen[pos]){ for(int i=0; i<e[pos].size(); i++){ if(att[pos]+e[pos][i].second<att[e[pos][i].first] || att[e[pos][i].first]==-1){ att[e[pos][i].first]=att[pos]+e[pos][i].second; pq.push({att[pos]+e[pos][i].second,e[pos][i].first}); } } seen[pos]=1; } } } int main() { ios_base::sync_with_stdio(false); cin.tie(0); int n,m,s,t,u,v; cin>>n>>m>>s>>t>>u>>v; for(int i=0; i<m; i++){ int a,b,c; cin>>a>>b>>c; e[a].push_back({b,c}); e[b].push_back({a,c}); } vector<long long> ds(100005,-1), dt(100005,-1), dv(100005,-1); d(s,ds); d(t,dt); d(v,dv); long long r=-1; for(int i=1; i<=n; i++){ if(ds[t]==ds[i]+dt[i]){ if(r==-1 || dv[i]<r) r=dv[i]; } } cout<<r; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...