提出 #61221157
ソースコード 拡げる
#![allow(dead_code)]
use proconio::input;
trait Bound<T> {
fn lower_bound(&self, x: &T) -> usize;
fn upper_bound(&self, x: &T) -> usize;
}
impl<T: PartialOrd> Bound<T> for [T] {
fn lower_bound(&self, x: &T) -> usize {
let (mut low, mut high) = (0, self.len());
while low + 1 < high {
let mid = (low + high) / 2;
if self[mid] < *x {
low = mid;
} else {
high = mid;
}
}
if self[low] < *x {
low + 1
} else {
low
}
}
fn upper_bound(&self, x: &T) -> usize {
let (mut low, mut high) = (0, self.len());
while low + 1 < high {
let mid = (low + high) / 2;
if self[mid] <= *x {
low = mid;
} else {
high = mid;
}
}
if self[low] <= *x {
low + 1
} else {
low
}
}
}
fn func(a: &[usize], idx: usize, c: usize, current_xor: usize, ans: &mut usize) {
// c = 0(残り選択数が 0) ならば、最大値を更新して戻る
if c == 0 {
if current_xor > *ans {
*ans = current_xor;
}
return;
}
// idx が配列の長さに達したら探索を終了
if idx == a.len() {
return;
}
// A[idx] を使う場合
func(a, idx + 1, c - 1, current_xor ^ a[idx], ans);
// A[idx] を使わない場合
func(a, idx + 1, c, current_xor, ans);
}
fn main() {
input! {n:usize,k:usize,a:[usize;n]}
let mut ans = 0;
if k <= n - k {
func(&a, 0, k, 0, &mut ans);
} else {
let mut all_xor = 0;
for &val in &a {
all_xor ^= val;
}
func(&a, 0, n - k, all_xor, &mut ans);
}
println!("{}", ans)
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | E - Maximize XOR |
| ユーザ | tsu7magu6 |
| 言語 | Rust (rustc 1.70.0) |
| 得点 | 500 |
| コード長 | 1929 Byte |
| 結果 | AC |
| 実行時間 | 14 ms |
| メモリ | 7016 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 500 / 500 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 01_test_00.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt, 01_test_28.txt, 01_test_29.txt, 01_test_30.txt, 01_test_31.txt, 01_test_32.txt, 01_test_33.txt, 01_test_34.txt, 01_test_35.txt, 01_test_36.txt, 01_test_37.txt, 01_test_38.txt, 01_test_39.txt, 01_test_40.txt, 01_test_41.txt, 01_test_42.txt, 01_test_43.txt, 01_test_44.txt, 01_test_45.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00_sample_00.txt | AC | 1 ms | 1968 KiB |
| 00_sample_01.txt | AC | 1 ms | 2076 KiB |
| 01_test_00.txt | AC | 6 ms | 4008 KiB |
| 01_test_01.txt | AC | 14 ms | 6920 KiB |
| 01_test_02.txt | AC | 12 ms | 6656 KiB |
| 01_test_03.txt | AC | 13 ms | 6996 KiB |
| 01_test_04.txt | AC | 2 ms | 1940 KiB |
| 01_test_05.txt | AC | 3 ms | 1964 KiB |
| 01_test_06.txt | AC | 1 ms | 1960 KiB |
| 01_test_07.txt | AC | 3 ms | 1904 KiB |
| 01_test_08.txt | AC | 1 ms | 1928 KiB |
| 01_test_09.txt | AC | 3 ms | 1872 KiB |
| 01_test_10.txt | AC | 1 ms | 1792 KiB |
| 01_test_11.txt | AC | 3 ms | 1976 KiB |
| 01_test_12.txt | AC | 1 ms | 1860 KiB |
| 01_test_13.txt | AC | 3 ms | 1848 KiB |
| 01_test_14.txt | AC | 1 ms | 1920 KiB |
| 01_test_15.txt | AC | 3 ms | 2076 KiB |
| 01_test_16.txt | AC | 1 ms | 1964 KiB |
| 01_test_17.txt | AC | 3 ms | 1912 KiB |
| 01_test_18.txt | AC | 1 ms | 1948 KiB |
| 01_test_19.txt | AC | 3 ms | 1916 KiB |
| 01_test_20.txt | AC | 2 ms | 1928 KiB |
| 01_test_21.txt | AC | 3 ms | 1784 KiB |
| 01_test_22.txt | AC | 1 ms | 2076 KiB |
| 01_test_23.txt | AC | 3 ms | 1848 KiB |
| 01_test_24.txt | AC | 1 ms | 1868 KiB |
| 01_test_25.txt | AC | 4 ms | 1852 KiB |
| 01_test_26.txt | AC | 1 ms | 1800 KiB |
| 01_test_27.txt | AC | 4 ms | 1908 KiB |
| 01_test_28.txt | AC | 1 ms | 1956 KiB |
| 01_test_29.txt | AC | 3 ms | 1924 KiB |
| 01_test_30.txt | AC | 4 ms | 1840 KiB |
| 01_test_31.txt | AC | 4 ms | 1896 KiB |
| 01_test_32.txt | AC | 1 ms | 2068 KiB |
| 01_test_33.txt | AC | 5 ms | 1944 KiB |
| 01_test_34.txt | AC | 0 ms | 2060 KiB |
| 01_test_35.txt | AC | 5 ms | 1900 KiB |
| 01_test_36.txt | AC | 3 ms | 1964 KiB |
| 01_test_37.txt | AC | 5 ms | 1928 KiB |
| 01_test_38.txt | AC | 1 ms | 1792 KiB |
| 01_test_39.txt | AC | 5 ms | 1932 KiB |
| 01_test_40.txt | AC | 1 ms | 1932 KiB |
| 01_test_41.txt | AC | 7 ms | 1856 KiB |
| 01_test_42.txt | AC | 1 ms | 2056 KiB |
| 01_test_43.txt | AC | 6 ms | 1904 KiB |
| 01_test_44.txt | AC | 1 ms | 1868 KiB |
| 01_test_45.txt | AC | 14 ms | 7016 KiB |