# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
982656 | 2024-05-14T15:17:50 Z | vjudge1 | Teams (CEOI11_tea) | C++17 | 531 ms | 106120 KB |
#include <bits/stdc++.h> using namespace std; const int N=200005; int main() { int n; cin >> n; vector<int> a[n + 1]; vector<int> v(n + 1); for(int i = 1;i <= n; i++){ cin >> v[i]; a[v[i]].push_back(i); } sort(v.begin(), v.end()); vector<int> dp(n + 1,-N); vector<int> mx(n + 1); function<int(int)> check = [&](int lim){ dp.assign(n + 1,-N); dp[0] = 0; for(int i = 1;i <= n; i++){ if(i >= v[i] && i - mx[i - v[i]] <= lim) dp[i] = dp[mx[i - v[i]]] + 1; mx[i] = (dp[mx[i - 1]] > dp[i] ? mx[i - 1] : i); } return dp[n]; }; int mx1 = check(n); int l = 0,r = n; while(r - l > 1){ int mid = l + r >>1; if(check(mid) == mx1){ r = mid; } else{ l = mid; } } check(r); vector<vector<int>> ans; int p = n; while(p > 0){ ans.push_back(vector<int>()); int t = mx[p - v[p]]; while(p > t){ ans.back().push_back(a[v[p]].back()); a[v[p]].pop_back(); p--; } } cout << mx1 << "\n"; for(auto &i : ans){ cout << i.size() << ' '; for(int j:i){ cout << j << ' '; } cout << "\n"; } return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 348 KB | Output is correct |
2 | Correct | 0 ms | 436 KB | Output is correct |
3 | Correct | 1 ms | 348 KB | Output is correct |
4 | Correct | 0 ms | 348 KB | Output is correct |
5 | Correct | 0 ms | 348 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 348 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Correct | 0 ms | 348 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 348 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Correct | 1 ms | 604 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 3 ms | 604 KB | Output is correct |
2 | Correct | 2 ms | 604 KB | Output is correct |
3 | Correct | 2 ms | 604 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 604 KB | Output is correct |
2 | Correct | 2 ms | 604 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 34 ms | 4944 KB | Output is correct |
2 | Correct | 33 ms | 4952 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 39 ms | 5464 KB | Output is correct |
2 | Correct | 27 ms | 4820 KB | Output is correct |
3 | Correct | 37 ms | 5468 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 326 ms | 43752 KB | Output is correct |
2 | Correct | 268 ms | 42572 KB | Output is correct |
3 | Correct | 339 ms | 43872 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 449 ms | 58244 KB | Output is correct |
2 | Correct | 453 ms | 106120 KB | Output is correct |
3 | Correct | 362 ms | 56688 KB | Output is correct |
4 | Correct | 425 ms | 52136 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 467 ms | 59204 KB | Output is correct |
2 | Correct | 455 ms | 58300 KB | Output is correct |
3 | Correct | 385 ms | 56136 KB | Output is correct |
4 | Correct | 531 ms | 59868 KB | Output is correct |