Submission #278940
Source Code Expand
import java.util.*;
public class Main {
private void solve() {
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
int ninzu = sc.nextInt();
int myAbility = sc.nextInt();
int[] downAbilities = new int[ninzu];
int[] upAbilities = new int[ninzu];
int downCnt = 0;
int upCnt = 0;
for (int i = 0; i < ninzu; i++) {
int ability = sc.nextInt();
if (ability < myAbility) {
downAbilities[downCnt++] = ability;
} else {
upAbilities[upCnt++] = ability;
}
}
Arrays.sort(downAbilities);
Arrays.sort(upAbilities);
System.out.println("debug: " + Arrays.toString(downAbilities));
System.out.println("debug: " + Arrays.toString(upAbilities));
int roryoku = 0;
for (int tempDownCnt = ninzu - 1, tempUpCnt = downCnt; tempDownCnt >= upCnt || tempUpCnt < ninzu;) {
if (tempUpCnt >= ninzu) {
// System.out.println("debug1: " + downAbilities[tempDownCnt]);
if (tempDownCnt == ninzu - 1) {
roryoku += myAbility - downAbilities[tempDownCnt];
} else {
roryoku += Math.min(myAbility - downAbilities[tempDownCnt], downAbilities[tempDownCnt + 1]
- downAbilities[tempDownCnt]);
}
tempDownCnt--;
} else if (tempDownCnt < upCnt) {
// System.out.println("debug2: " + upAbilities[tempUpCnt]);
if (tempUpCnt == downCnt) {
roryoku += upAbilities[tempUpCnt] - myAbility;
} else {
roryoku += Math.min(upAbilities[tempUpCnt] - myAbility, upAbilities[tempUpCnt]
- upAbilities[tempUpCnt - 1]);
}
tempUpCnt++;
} else {
if (myAbility - downAbilities[tempDownCnt] < upAbilities[tempUpCnt] - myAbility) {
// System.out.println("debug3: " +
// downAbilities[tempDownCnt]);
if (tempDownCnt == ninzu - 1) {
roryoku += myAbility - downAbilities[tempDownCnt];
} else {
roryoku += Math.min(myAbility - downAbilities[tempDownCnt], downAbilities[tempDownCnt + 1]
- downAbilities[tempDownCnt]);
}
tempDownCnt--;
} else {
// System.out.println("debug4: " + upAbilities[tempUpCnt]);
if (tempUpCnt == downCnt) {
roryoku += upAbilities[tempUpCnt] - myAbility;
} else {
roryoku += Math.min(upAbilities[tempUpCnt] - myAbility, upAbilities[tempUpCnt]
- upAbilities[tempUpCnt - 1]);
}
tempUpCnt++;
}
}
// System.out.println("debug: roryoku = " + roryoku);
}
System.out.println(roryoku);
}
public static void main(String[] args) {
new Main().solve();
}
}
Submission Info
| Submission Time | |
|---|---|
| Task | B - コミュニケーション能力(Communication Ability) |
| User | kakiageudon |
| Language | Java (OpenJDK 1.7.0) |
| Score | 0 |
| Code Size | 2559 Byte |
| Status | WA |
| Exec Time | 500 ms |
| Memory | 24116 KiB |
Judge Result
| Set Name | all | ||||
|---|---|---|---|---|---|
| Score / Max Score | 0 / 500 | ||||
| Status |
|
| Set Name | Test Cases |
|---|---|
| all | subtask0_sample01.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| subtask0_sample01.txt | WA | 500 ms | 23272 KiB |
| subtask1_01.txt | WA | 467 ms | 23260 KiB |
| subtask1_02.txt | WA | 483 ms | 23384 KiB |
| subtask1_03.txt | WA | 486 ms | 23212 KiB |
| subtask1_04.txt | RE | 461 ms | 23220 KiB |
| subtask1_05.txt | RE | 476 ms | 23212 KiB |
| subtask1_06.txt | RE | 456 ms | 23216 KiB |
| subtask1_07.txt | RE | 497 ms | 23220 KiB |
| subtask1_08.txt | RE | 460 ms | 23260 KiB |
| subtask1_09.txt | RE | 477 ms | 23216 KiB |
| subtask1_10.txt | RE | 465 ms | 23316 KiB |
| subtask1_11.txt | RE | 495 ms | 23340 KiB |
| subtask1_12.txt | RE | 462 ms | 23348 KiB |
| subtask1_13.txt | RE | 474 ms | 23092 KiB |
| subtask1_14.txt | RE | 447 ms | 23296 KiB |
| subtask1_15.txt | RE | 470 ms | 24116 KiB |