Submission #2557299
Source Code Expand
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { long h, w; public static void main(String args[]) { new Main().run(); } void run() { FastReader sc = new FastReader(); h = sc.nextInt(); w = sc.nextInt(); solve(); } void solve() { long minDiff = Long.MAX_VALUE; for (int i = 1; i < h; i++) { long firstArea = w * i; long diff = Long.MAX_VALUE; if ((h - i) % 2 == 0) { diff = Math.abs(firstArea - w * (h - i) / 2); } else { long secondArea = w * (h - i + 1) / 2; long thirdArea = w * ((h - i) / 2); if (secondArea >= firstArea && firstArea >= thirdArea) { diff = secondArea - thirdArea; } else { diff = Math.max(firstArea, secondArea) - Math.min(firstArea, thirdArea); } } if (diff < minDiff) { minDiff = diff; } if (w % 2 == 0) { diff = Math.abs(firstArea - w / 2 * (h - i)); } else { long secondArea = (w + 1) / 2 * (h - i); long thirdArea = w / 2 * (h - i); if (secondArea >= firstArea && firstArea >= thirdArea) { diff = secondArea - thirdArea; } else { diff = Math.max(firstArea, secondArea) - Math.min(firstArea, thirdArea); } } if (diff < minDiff) { minDiff = diff; } } for (int i = 1; i < w; i++) { long firstArea = h * i; long diff = Long.MAX_VALUE; if ((w - i) % 2 == 0) { diff = Math.abs(firstArea - (w - i) * h / 2); } else { long secondArea = (w - i + 1) / 2 * h; long thirdArea = (w - i) / 2 * h; if (secondArea >= firstArea && firstArea >= thirdArea) { diff = secondArea - thirdArea; } else { diff = Math.max(firstArea, secondArea) - Math.min(firstArea, thirdArea); } } if (diff < minDiff) { minDiff = diff; } if (h % 2 == 0) { diff = Math.abs(firstArea - h / 2 * (w - i)); } else { long secondArea = (h + 1) / 2 * (w - i); long thirdArea = h / 2 * (w - i); if (secondArea >= firstArea && firstArea >= thirdArea) { diff = secondArea - thirdArea; } else { diff = Math.max(firstArea, secondArea) - Math.min(firstArea, thirdArea); } } if (diff < minDiff) { minDiff = diff; } } System.out.println(minDiff); } static class FastReader { BufferedReader br; StringTokenizer st; public FastReader() { br = new BufferedReader(new InputStreamReader(System.in)); } String next() { while (st == null || !st.hasMoreElements()) { try { st = new StringTokenizer(br.readLine()); } catch (IOException e) { e.printStackTrace(); } } return st.nextToken(); } int nextInt() { return Integer.parseInt(next()); } long nextLong() { return Long.parseLong(next()); } double nextDouble() { return Double.parseDouble(next()); } String nextLine() { String str = ""; try { str = br.readLine(); } catch (IOException e) { e.printStackTrace(); } return str; } } }
Submission Info
Submission Time | |
---|---|
Task | C - Chocolate Bar |
User | ynish |
Language | Java8 (OpenJDK 1.8.0) |
Score | 400 |
Code Size | 4445 Byte |
Status | AC |
Exec Time | 118 ms |
Memory | 22100 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 400 / 400 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt, 0_04.txt |
All | 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt, 0_04.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 1_11.txt, 1_12.txt, 1_13.txt, 1_14.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
0_00.txt | AC | 72 ms | 18516 KB |
0_01.txt | AC | 70 ms | 20052 KB |
0_02.txt | AC | 72 ms | 18644 KB |
0_03.txt | AC | 95 ms | 18004 KB |
0_04.txt | AC | 116 ms | 18132 KB |
1_00.txt | AC | 70 ms | 21204 KB |
1_01.txt | AC | 99 ms | 21204 KB |
1_02.txt | AC | 98 ms | 19668 KB |
1_03.txt | AC | 103 ms | 19028 KB |
1_04.txt | AC | 96 ms | 19028 KB |
1_05.txt | AC | 116 ms | 22100 KB |
1_06.txt | AC | 104 ms | 19156 KB |
1_07.txt | AC | 97 ms | 19796 KB |
1_08.txt | AC | 108 ms | 18900 KB |
1_09.txt | AC | 118 ms | 19668 KB |
1_10.txt | AC | 104 ms | 18900 KB |
1_11.txt | AC | 94 ms | 19668 KB |
1_12.txt | AC | 111 ms | 20948 KB |
1_13.txt | AC | 98 ms | 19412 KB |
1_14.txt | AC | 88 ms | 18004 KB |