제출 #996637

#제출 시각아이디문제언어결과실행 시간메모리
996637MarszpaceCommuter Pass (JOI18_commuter_pass)C++14
100 / 100
297 ms36352 KiB
/* * With a little appreciation, in a mostly hollow tone, she says, "Delightful." As if the world has any meaning. * TASK : Commuter Pass * AUTHOR : Marszpace */ #include<bits/stdc++.h> using namespace std; #define int long long #define pii pair<int,int> #define t5i tuple<int,int,int,int,int> int32_t main(){ ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); int n,m,s,t,u,v; cin >> n >> m >> s >> t >> u >> v; vector<vector<pii>> edges(n+1,vector<pii>()); for(int i=0;i<m;i++){ int a,b,c; cin >> a >> b >> c; edges[a].push_back({c,b}); edges[b].push_back({c,a}); } vector<int> distfromu(n+1,LLONG_MAX), distfromv(n+1,LLONG_MAX), distfin(n+1,LLONG_MAX); { priority_queue<pii, vector<pii>, greater<pii>> pq; pq.push({0,u}); while(!pq.empty()){ auto [d,a]=pq.top();pq.pop(); if(distfromu[a]!=LLONG_MAX){continue;} distfromu[a]=d; for(auto [c,b]:edges[a]){ pq.push({d+c,b}); } } pq.push({0,v}); while(!pq.empty()){ auto [d,a]=pq.top();pq.pop(); if(distfromv[a]!=LLONG_MAX){continue;} distfromv[a]=d; for(auto [c,b]:edges[a]){ pq.push({d+c,b}); } } } priority_queue<t5i, vector<t5i>, greater<t5i>> pq; pq.push({0, distfromv[s]+distfromu[s], distfromv[s], distfromu[s], s}); while(!pq.empty()){ auto [d,ans,ans1,ans2,a]=pq.top();pq.pop(); if(distfin[a]!=LLONG_MAX){continue;} distfin[a]=ans; for(auto [c,b]:edges[a]){ pq.push({d+c, min(ans1,distfromv[b])+min(ans2,distfromu[b]), min(ans1,distfromv[b]), min(ans2,distfromu[b]), b}); } } cout << min(distfromu[v],distfin[t]); return 0; }

컴파일 시 표준 에러 (stderr) 메시지

commuter_pass.cpp: In function 'int32_t main()':
commuter_pass.cpp:32:10: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   32 |     auto [d,a]=pq.top();pq.pop();
      |          ^
commuter_pass.cpp:35:14: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   35 |     for(auto [c,b]:edges[a]){
      |              ^
commuter_pass.cpp:42:10: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   42 |     auto [d,a]=pq.top();pq.pop();
      |          ^
commuter_pass.cpp:45:14: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   45 |     for(auto [c,b]:edges[a]){
      |              ^
commuter_pass.cpp:56:10: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   56 |     auto [d,ans,ans1,ans2,a]=pq.top();pq.pop();
      |          ^
commuter_pass.cpp:59:14: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   59 |     for(auto [c,b]:edges[a]){
      |              ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...