Submission #1180417

#TimeUsernameProblemLanguageResultExecution timeMemory
1180417user736482Commuter Pass (JOI18_commuter_pass)C++20
31 / 100
306 ms27304 KiB
#pragma GCC optimize("O3") #include <bits/stdc++.h> using namespace std; #define ll long long #define ld long double #define pb push_back #define ff first #define ss second #define MOD 1000000009 #define INF 1000000019 #define INFL 1000000000000000099LL #define MX 507 ll n,q,s,t,a,b,c,d,ans=INFL,bst,k,e,m,pier,h,w,u,v; ll dst[100007],dst2[100007]; bool odw[100007],odw2[100007],odw3[100007]; vector<pair<ll,ll>>g[100007],g2[100007];//dst,gdzie priority_queue<pair<ll,ll>,vector<pair<ll,ll>>,greater<pair<ll,ll>>>pq; int main() { ios_base::sync_with_stdio(0);cin.tie(0); cin>>n>>m>>s>>t>>u>>v; s--; t--; u--; v--; for(ll i=0;i<m;i++){ cin>>a>>b>>c; a--; b--; g2[a].pb({c,b}); g2[b].pb({c,a}); } pq.push({0,s}); while(pq.size()){ auto pom=pq.top(); pq.pop(); if(odw[pom.ss])continue; odw[pom.ss]=1; dst[pom.ss]=pom.ff; for(auto i : g2[pom.ss]){ pq.push({pom.ff+i.ff,i.ss}); } } pq.push({0,t}); while(pq.size()){ auto pom=pq.top(); pq.pop(); if(odw2[pom.ss])continue; odw2[pom.ss]=1; dst2[pom.ss]=pom.ff; for(auto i : g2[pom.ss]){ pq.push({pom.ff+i.ff,i.ss}); } } ll mn=dst[t]; for(ll i=0;i<n;i++){ for(auto j : g2[i]){ if(mn==j.ff+dst[i]+dst2[j.ss]){ g2[i].pb({0,j.ss}); //cout<<i<<" "<<j.ss<<"\n"; } else{ // cout<<2; } } } for(ll i=0;i<n;i++){ odw[i]=0; odw2[i]=0; } pq.push({0,u}); while(pq.size()){ auto pom=pq.top(); pq.pop(); if(odw[pom.ss])continue; odw[pom.ss]=1; dst[pom.ss]=pom.ff; for(auto i : g2[pom.ss]){ pq.push({pom.ff+i.ff,i.ss}); } } pq.push({0,v}); while(pq.size()){ auto pom=pq.top(); pq.pop(); if(odw2[pom.ss])continue; odw2[pom.ss]=1; dst2[pom.ss]=pom.ff; for(auto i : g2[pom.ss]){ pq.push({pom.ff+i.ff,i.ss}); } } cout<<min(dst[v],dst2[u]); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...