結果
| 問題 |
No.699 ペアでチームを作ろう2
|
| ユーザー |
|
| 提出日時 | 2018-09-22 18:35:53 |
| 言語 | Java (openjdk 23) |
| 結果 |
AC
|
| 実行時間 | 260 ms / 1,000 ms |
| コード長 | 1,597 bytes |
| コンパイル時間 | 3,968 ms |
| コンパイル使用メモリ | 80,196 KB |
| 実行使用メモリ | 47,488 KB |
| 最終ジャッジ日時 | 2024-07-18 10:15:16 |
| 合計ジャッジ時間 | 7,102 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 12 |
ソースコード
import java.io.*;
import java.util.*;
public class Main_yukicoder699_1 {
private static Scanner sc;
private static Printer pr;
private static void solve() {
int n = sc.nextInt();
int[] a = new int[n];
for (int i = 0; i < n; i++) {
a[i] = sc.nextInt();
}
long max = 0;
Deque<List<Integer>> st = new ArrayDeque<>();
List<Integer> ltmp = new ArrayList<>(n + 1);
for (int i = 0; i < n; i++) {
ltmp.add(i);
}
ltmp.add(1);
st.push(ltmp);
@SuppressWarnings("unused")
int cnt = 0;
while (!st.isEmpty()) {
List<Integer> e = st.pop();
int size = e.get(n);
if (size >= n) {
// pr.println(e);
cnt++;
long tmp = 0;
long tmp2 = 0;
for (int i = 0; i < n; i++) {
if (i % 2 == 0) {
tmp2 += a[e.get(i)];
} else {
tmp2 += a[e.get(i)];
tmp ^= tmp2;
tmp2 = 0;
}
}
max = Math.max(max, tmp);
} else {
for (int i = size; i < n; i++) {
List<Integer> ee = new ArrayList<>(e);
int tmp = ee.get(size); ee.set(size, ee.get(i)); ee.set(i, tmp);
ee.set(n, ee.get(n) + 2);
st.push(ee);
}
}
}
// <pr.println(cnt);
pr.println(max);
}
// ---------------------------------------------------
public static void main(String[] args) {
sc = new Scanner(INPUT == null ? System.in : new ByteArrayInputStream(INPUT.getBytes()));
pr = new Printer(System.out);
solve();
// pr.close();
pr.flush();
// sc.close();
}
static String INPUT = null;
private static class Printer extends PrintWriter {
Printer(OutputStream out) {
super(out);
}
}
}