結果
| 問題 |
No.4 おもりと天秤
|
| コンテスト | |
| ユーザー |
mastersatoshi
|
| 提出日時 | 2015-08-01 11:27:48 |
| 言語 | Java (openjdk 23) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,245 bytes |
| コンパイル時間 | 2,311 ms |
| コンパイル使用メモリ | 77,948 KB |
| 実行使用メモリ | 50,540 KB |
| 最終ジャッジ日時 | 2024-07-18 00:21:54 |
| 合計ジャッジ時間 | 4,421 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 21 WA * 2 |
ソースコード
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
String[] strW = br.readLine().split(" ");
int[] W = new int[strW.length];
int sum = 0;
for (int i = 0; i < strW.length; i++) {
W[i] = Integer.parseInt(strW[i]);
sum += W[i];
}
if (sum % 2 != 0) {
System.out.println("impossible");
return;
}
int[] d = new int[sum / 2 + 1];
Arrays.fill(d, Integer.MAX_VALUE);
d[0] = -1;
for (int i = 0; i < W.length; i++) {
int tmpW = W[i];
for (int j = 0; j < d.length - tmpW; j++) {
if (d[j] != Integer.MAX_VALUE) {
if (sum / 2 == j + tmpW) {
System.out.println("possible");
return;
} else if (j + tmpW < d.length && d[j] != i) {
d[j + tmpW] = i;
}
}
}
}
System.out.println("impossible");
}
}
mastersatoshi