# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1163054 | SmuggingSpun | Bigger segments (IZhO19_segments) | C++20 | 146 ms | 35828 KiB |
#include<bits/stdc++.h>
#define taskname "B"
using namespace std;
typedef long long ll;
const int INF = 1e9;
template<class T>void maximize(T& a, T b){
if(a < b){
a = b;
}
}
int n;
namespace sub123{
void solve(){
vector<ll>f(n + 1);
f[0] = 0;
for(int i = 1; i <= n; i++){
cin >> f[i];
f[i] += f[i - 1];
}
vector<vector<int>>dp(n + 1, vector<int>(n + 1, -INF));
for(int l = dp[1][1] = 1; l < n; l++){
for(int r = l; r < n; r++){
maximize(dp[l][r + 1], dp[l][r]);
int low = r + 1, high = n, p = -1;
while(low <= high){
int mid = (low + high) >> 1;
if(f[mid] - f[r] >= f[r] - f[l - 1]){
high = (p = mid) - 1;
}
else{
low = mid + 1;
}
}
if(p != -1){
maximize(dp[r + 1][p], dp[l][r] + 1);
}
}
}
int ans = 0;
for(int i = 1; i <= n; i++){
maximize(ans, dp[i][n]);
}
cout << ans;
}
}
namespace sub45{
void solve(){
vector<int>a(n + 1);
for(int i = 1; i <= n; i++){
cin >> a[i];
}
ll pre_sum = a[1];
int ans = 1;
for(int i = 2, j = 1; i <= n; j = i - 1){
ll sum = 0;
while(i <= n && sum < pre_sum){
sum += a[i++];
}
if(sum < pre_sum){
break;
}
ans++;
while(pre_sum + a[j + 1] <= sum - a[j + 1]){
sum -= a[++j];
pre_sum += a[j];
}
pre_sum = sum;
}
cout << ans;
}
}
int main(){
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
if(fopen(taskname".inp", "r")){
freopen(taskname".inp", "r", stdin);
}
cin >> n;
if(n <= 3000){
sub123::solve();
}
else{
sub45::solve();
}
}
컴파일 시 표준 에러 (stderr) 메시지
# | 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... |