제출 #1112288

#제출 시각아이디문제언어결과실행 시간메모리
1112288Zero_OPConstruction Project 2 (JOI24_ho_t2)C++14
53 / 100
2066 ms26772 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const long long inf = 1e18; void testcase(){ int N, M, S, T, L; long long K; cin >> N >> M >> S >> T >> L >> K; --S, --T; vector<vector<pair<int, int>>> adj(N); while(M--){ int u, v, w; cin >> u >> v >> w; --u, --v; adj[u].emplace_back(v, w); adj[v].emplace_back(u, w); } auto dijkstra = [&](int s){ vector<long long> d(N, inf); d[s] = 0; using node = pair<long long, int>; priority_queue<node, vector<node>, greater<node>> pq; pq.push({d[s], s}); while(!pq.empty()){ long long cur; int u; tie(cur, u) = pq.top(); pq.pop(); for(auto [v, w] : adj[u]){ if(d[v] > d[u] + w){ d[v] = d[u] + w; pq.push({d[v], v}); } } } return d; }; vector<long long> dS = dijkstra(S), dT = dijkstra(T); if(dS[T] <= K){ cout << 1LL * N * (N - 1) / 2; return; } vector<long long> vS, vT; for(int i = 0; i < N; ++i){ vS.emplace_back(dS[i]); vT.emplace_back(dT[i]); } sort(vS.begin(), vS.end()); long long cnt = 0; for(int i = 0; i < N; ++i){ cnt += upper_bound(vS.begin(), vS.end(), K - L - dT[i]) - vS.begin(); } cout << cnt << '\n'; } signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); int T = 1; // cin >> T; while(T--) testcase(); return 0; }

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

Main.cpp: In lambda function:
Main.cpp:34:22: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   34 |             for(auto [v, w] : adj[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...