Submission #1294898

#TimeUsernameProblemLanguageResultExecution timeMemory
1294898kian2009Road Construction (JOI21_road_construction)C++20
6 / 100
355 ms23308 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int MAXN = 3e5 + 10; ll n, k, x[MAXN], y[MAXN]; set<pair<ll, ll>> s; vector<ll> res; void input() { cin >> n >> k; for (int i = 0; i < n; i++) cin >> x[i] >> y[i]; } void findAns() { for (int i = 0; i < n - 1; i++) s.insert({x[i + 1] - x[i], i + 1}); while (res.size() < k) { pair<ll, ll> h = (*s.begin()); res.push_back(h.first); s.erase(h); if (h.second != (n - 1)) s.insert({h.first + x[h.second + 1] - x[h.second], h.second + 1}); } } int main() { ios::sync_with_stdio(false); cin.tie(0); input(); sort(x, x + n); findAns(); for (auto x : res) cout << x << '\n'; return 0; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...