# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
99355 | anirudhrahul | Split the sequence (APIO14_sequence) | Java | 2031 ms | 132096 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.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.StringTokenizer;
/**
* Created by user on 3/2/2019.
*/
public class sequence{
static int[] list;
static int[][][] dp;
static boolean[][][] optionTaken;
static int len;
static int[] suffixSums;
public static int recurse(int index, int k, int sum, int partLen){
// System.out.println("Index:"+index+"\tk:"+k+"\tSum:"+"\tPrev:"+prev);
if(index==len)
return k==0?0:Integer.MIN_VALUE/2;
if(k==0||index==len-1)
return dp[index][k][partLen]=recurse(index+1,k,sum+list[index],partLen+1);
if(dp[index][k][partLen]!=0)
return dp[index][k][partLen];
sum+=list[index];
int option1=(suffixSums[index+1])*sum+recurse(index+1,k-1,0,0);
int option2=recurse(index+1,k,sum,partLen+1);
optionTaken[index][k][partLen]=option1>option2;
return dp[index][k][partLen]=Math.max(option1,option2);
}
# | 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... |