Submission #1320815

#TimeUsernameProblemLanguageResultExecution timeMemory
1320815phamngocphuc2008Construction Project 2 (JOI24_ho_t2)C++20
8 / 100
198 ms24840 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define fi first #define se second #define sz(x) ((int)x.size()) #define all(a) (a).begin(), (a).end() #define inpvi(a, n) vi a(n); for(auto &i : a) cin >> i; using vi = vector<int>; using pii = pair<int, int>; int iceil(int a, int b) { return (a+b-1)/b; } bool chmin(int &a, int b) { bool r = a > b; a = min(a,b); return r; } const int inf = numeric_limits<int>::max(); int n,m; vector<vector<pair<int,int>>> adj; int s,t,l,k; vi dijkstra(int s) { vi d(n, inf); d[s] = 0; priority_queue<pii, vector<pii>, greater<pii>> q; q.push({0, s}); while(!q.empty()) { auto [d_v, v] = q.top(); q.pop(); if(d_v != d[v]) continue; for(auto [to, len] : adj[v]) { if(d[v] + len < d[to]) { d[to] = d[v] + len; q.push({d[to], to}); } } } return d; } signed main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n >> m; cin >> s >> t >> l >> k; --s;--t; adj.resize(n); for(int i = 0; i < m; ++i) { int a,b,c; cin >> a >> b >> c; --a;--b; adj[a].push_back({b,c}); adj[b].push_back({a,c}); } vi d1 = dijkstra(s); vi d2 = dijkstra(t); if(d1[t] <= k) { cout << n*(n-1)/2; return 0; } if(l > k) { cout << 0; return 0; } //for(auto &i : d) cerr << i << '\n'; int ans = 0; for(int i = 0; i < n; ++i) { if(d1[i] <= k - l) ++ans; if(d2[i] <= k - l) ++ans; } cout << ans-1; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...