# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
443231 | minoum | Split the sequence (APIO14_sequence) | C++17 | 1707 ms | 81300 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
typedef long long int ll;
const int MAXN = 1e5+5, K = 200+2;
int n, k;
ll dp[2][MAXN], prs[MAXN], s = 0;
int par[K][MAXN];
inline ll getsum(int l, int r){ //[,]
l++; r++;
ll tmp = prs[r] - prs[l-1];
return (((tmp-1ll)*tmp)/2ll);
}
void calc(int id, int l, int r, int opl, int opr){ //[l,r)
if(r-l<1) return;
int mid = (l+r)/2;
int op = opl;
for(int i = opl+1; i <= min(mid-1,opr-1); i++) if(dp[1-(id%2)][i]+getsum(i+1,mid)<dp[1-(id%2)][op]+getsum(op+1,mid)) op = i;
dp[id%2][mid] = dp[1-(id%2)][op]+getsum(op+1,mid); par[id][mid] = op;
calc(id, l, mid, opl, op+1);
calc(id, mid+1, r, op, opr);
return;
}
int main()
{
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |