제출 #783739

#제출 시각아이디문제언어결과실행 시간메모리
783739CookieFerries (NOI13_ferries)C++14
40 / 40
307 ms31832 KiB
#include<bits/stdc++.h> #include<fstream> using namespace std; ifstream fin("FEEDING.INP"); ofstream fout("FEEDING.OUT"); #define sz(a) (int)a.size() #define ll long long #define pb push_back #define forr(i, a, b) for(int i = a; i < b; i++) #define dorr(i, a, b) for(int i = a; i >= b; i--) #define ld long double #define vt vector #include<fstream> #define fi first #define se second #define pll pair<ll, ll> #define pii pair<int, int> const ld PI = 3.14159265359; using u128 = __uint128_t; const int x[4] = {1, -1, 0, 0}; const int y[4] = {0, 0, 1, -1}; const ll mod = 1e9 + 7, inf = 1e16; const int mxn = 1e5 + 5; int n, m; vt<int>adj[mxn + 1]; multiset<int>ms[mxn + 1]; ll dis[mxn + 1]; bool vis[mxn + 1]; signed main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> m; forr(i, 0, m){ int a, b, c; cin >> a >> b >> c; adj[b].pb(a); ms[a].insert(c); } for(int i = 1; i <= n; i++)dis[i] = inf; priority_queue<pll, vt<pll>,greater<pll>>pq; dis[n] = 0; pq.push({dis[n], n}); while(!pq.empty()){ auto [dd, u] = pq.top(); pq.pop(); if(vis[u])continue; vis[u] = 1; for(auto v: adj[u]){ int cost = *ms[v].rbegin(); if(dis[v] > dis[u] + cost){ dis[v] = dis[u] + cost; pq.push({dis[v], v}); } ms[v].erase(ms[v].find(cost)); } } cout << dis[1]; return(0); }

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

ferries.cpp: In function 'int main()':
ferries.cpp:42:14: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   42 |         auto [dd, u] = pq.top(); pq.pop();
      |              ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...