Submission #1231110

#TimeUsernameProblemLanguageResultExecution timeMemory
1231110damamilaEvent Hopping 2 (JOI21_event2)C++20
0 / 100
3094 ms8512 KiB
#include <bits/stdc++.h> using namespace std; #define int long long signed main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n, k; cin >> n >> k; vector<pair<int, int>> events(n); vector<tuple<int, bool, int>> sweep; for (int i = 0; i < n; i++) { int l, r; cin >> l >> r; events[i] = {l, r}; sweep.push_back({l, 1, i}); sweep.push_back({r, 0, i}); } sort(sweep.rbegin(), sweep.rend()); int prev = 0; vector<int> dp(n, 0); int mx = 0; for (auto [x, state, i] : sweep) { if (state == 1) { prev = max(prev, dp[i]); } else { dp[i] = prev+1; mx = max(mx, dp[i]); } //~ cout << x << " " << i << " " << state << " " << prev << " " << dp[i] << endl; } if (mx < k) { cout << -1; return 0; } prev = 0; vector<int> ans; vector<bool> use(n, 0); for (int need = k; need > 0; need--) { for (int i = 0; i < n; i++) { if (use[i]) continue; if (dp[i] >= need && events[i].first >= prev) { ans.push_back(i+1); prev = events[i].second; use[i] = 1; break; } } } sort(ans.begin(), ans.end()); for (int i : ans) cout << i << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...