| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1171256 | FZ_Laabidi | Bouquet (EGOI24_bouquet) | C++20 | 60 ms | 3552 KiB |
#include <bits/stdc++.h>
using namespace std;
int main() {
int n; cin >> n;
vector<pair<int, int>> flowers(n+1, {INT_MAX, INT_MAX});
vector<int> dp(n, 1), b(n+1, INT_MAX);
for(int i = 0; i < n; i++)
cin >> flowers[i].first >> flowers[i].second;
b[0]=-1;
for (int i=0; i<n; i++) {
int l=0, r = n, k=0;
while (l<r) {
int m = l+(r-l)/2;
if (b[m]<i-flowers[i].first&& b[m]+flowers[b[m]].second<i) {
k = m;
l = m+1;
}
else r = m;
}
dp[i]= k+1;
b[dp[i]]= min(i, b[dp[i]]);
}
cout << *max_element(dp.begin(), dp.end())<< endl;
}| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
