제출 #632944

#제출 시각아이디문제언어결과실행 시간메모리
632944NintsiChkhaidzeEvacuation plan (IZhO18_plan)C++14
19 / 100
399 ms38412 KiB
// Source: https://usaco.guide/general/io #include <bits/stdc++.h> #define s second #define f first #define pb push_back #define ll long long #define int ll using namespace std; const int N = 100005; vector <pair <int,ll>> v[N],qr[N]; ll dis[N]; bool vis[N]; int par[N],ans[N],W; int P(int x){ if (x == par[x]) return x; return par[x] = P(par[x]); } void dsu(int x,int y){ x = P(x),y = P(y); if (x == y) return; if (qr[x].size() < qr[y].size()) swap(x,y); par[y] = x; for (auto [to,id]: qr[y]){ if (P(y) == P(to)) ans[id] = W; else qr[x].pb({to,id}); } } signed main() { ios_base::sync_with_stdio(0),cin.tie(NULL),cout.tie(NULL); int n,m; cin>>n>>m; for (int i = 1; i <= m; i++){ int a,b; ll c; cin>>a>>b>>c; v[a].pb({b,c}); v[b].pb({a,c}); } for (int i = 1; i <= n; i++) dis[i] = 1e18,par[i] = i; using T = pair <ll,int>; priority_queue <T, vector <T>, greater <T> > pq; int k; cin>>k; for (int i = 1; i <= k; i++){ int x; cin>>x; dis[x] = 0LL; pq.push({0LL,x}); } while (pq.size()){ ll d = pq.top().f,x = pq.top().s; pq.pop(); if (dis[x] != d) continue; for (auto [to,w]: v[x]){ if (dis[to] > d + w){ dis[to] = d + w; pq.push({d + w,to}); } } } int Q; cin>>Q; for (int i = 1; i <= Q; i++){ int s,t; cin>>s>>t; qr[s].pb({t,i}); qr[t].pb({s,i}); } vector <pair <int,int> > vec; vec.clear(); for (int i = 1; i <= n; i++) vec.pb({dis[i],i}); sort(vec.begin(),vec.end(), greater <pair <int,int>> ()); for (auto [d,x]: vec){ vis[x] = 1; W = d; for (auto [to,w]: v[x]) if (vis[to]) dsu(x,to); } for (int i = 1; i <= Q; i++) cout<<ans[i]<<endl; }

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

plan.cpp: In function 'void dsu(long long int, long long int)':
plan.cpp:28:12: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   28 |  for (auto [to,id]: qr[y]){
      |            ^
plan.cpp: In function 'int main()':
plan.cpp:63:13: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   63 |   for (auto [to,w]: v[x]){
      |             ^
plan.cpp:84:12: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   84 |  for (auto [d,x]: vec){
      |            ^
plan.cpp:87:13: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   87 |   for (auto [to,w]: v[x])
      |             ^
#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...