Submission #2872739
Source Code Expand
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); long sum = 0; long[] sums = new long[4]; long[] a = new long[n]; for(int i=0;i<n;i++) { long input = in.nextLong(); sum = sum + input; a[i] = input; } long ave = sum/4; int[] lastIdx = new int[4]; long min = Long.MAX_VALUE; for(int i=0;i<8;i++) { sums[0]=sums[1]=sums[2]=0; for(int j=0;j<3;j++) { if(j==0) lastIdx[j] = -1; else lastIdx[j] = lastIdx[j-1]; if(((i>>j)&1)==0) { while(lastIdx[j]<n+j-4 && sums[j]+a[lastIdx[j]+1]<ave) { lastIdx[j]++; sums[j] = sums[j] + a[lastIdx[j]]; } }else { while(lastIdx[j]<n+j-4 && sums[j]<ave) { lastIdx[j]++; sums[j] = sums[j] + a[lastIdx[j]]; } } } sums[3] = sum - sums[0] - sums[1] - sums[2]; long absDif = getAbsoluteDifference(sums); if(absDif<min) min=absDif; } for(int i=0;i<8;i++) { sums[3]=sums[1]=sums[2]=0; for(int j=3;j>0;j--) { if(j==0) lastIdx[j] = n; else lastIdx[j-1] = lastIdx[j]; if(((i>>(3-j))&1)==0) { while(lastIdx[j]>j-2 && sums[j]+a[lastIdx[j]-1]<ave) { lastIdx[j]--; sums[j] = sums[j] + a[lastIdx[j]]; } }else { while(lastIdx[j]<j-2 && sums[j]<ave) { lastIdx[j]--; sums[j] = sums[j] + a[lastIdx[j]]; } } } sums[0] = sum - sums[3] - sums[1] - sums[2]; long absDif = getAbsoluteDifference(sums); if(absDif<min) min=absDif; } System.out.println(min); } public static long getAbsoluteDifference(long[] sums) { long min = Math.min(Math.min(sums[0], sums[1]), Math.min(sums[2], sums[3])); long max = Math.max(Math.max(sums[0], sums[1]), Math.max(sums[2], sums[3])); return max - min; } }
Submission Info
Submission Time | |
---|---|
Task | A - Multiple of 2 and N |
User | kiyokiyo |
Language | Java8 (OpenJDK 1.8.0) |
Score | 0 |
Code Size | 1904 Byte |
Status | RE |
Exec Time | 109 ms |
Memory | 38636 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 100 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt, sample_02.txt, sample_03.txt |
All | sample_01.txt, sample_02.txt, sample_03.txt, sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | RE | 97 ms | 19028 KB |
sample_02.txt | RE | 92 ms | 19412 KB |
sample_03.txt | RE | 106 ms | 34772 KB |
subtask_1_01.txt | RE | 93 ms | 20180 KB |
subtask_1_02.txt | RE | 93 ms | 19412 KB |
subtask_1_03.txt | RE | 93 ms | 19284 KB |
subtask_1_04.txt | RE | 92 ms | 18644 KB |
subtask_1_05.txt | RE | 90 ms | 19924 KB |
subtask_1_06.txt | RE | 109 ms | 36556 KB |
subtask_1_07.txt | RE | 108 ms | 34284 KB |
subtask_1_08.txt | RE | 108 ms | 35796 KB |
subtask_1_09.txt | RE | 108 ms | 38636 KB |