제출 #1231100

#제출 시각아이디문제언어결과실행 시간메모리
1231100damamilaEvent Hopping 2 (JOI21_event2)C++20
7 / 100
94 ms9640 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); for (auto [x, state, i] : sweep) { if (state == 1) { prev = max(prev, dp[i]); } else { dp[i] = prev+1; } //~ cout << x << " " << i << " " << state << " " << prev << " " << dp[i] << endl; } if (dp[0] < k) { cout << -1; return 0; } prev = 0; int need = k; vector<int> ans; for (int i = 0; i < n && need > 0; i++) { //~ cout << need << " " << prev << " " << dp[i] << " " << events[i].first << " " << events[i].second << endl; if (dp[i] >= need && events[i].first >= prev) { ans.push_back(i+1); need--; prev = events[i].second; } } 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...