結果
問題 | No.130 XOR Minimax |
ユーザー |
![]() |
提出日時 | 2022-06-12 17:36:31 |
言語 | Rust (1.83.0 + proconio) |
結果 |
WA
|
実行時間 | - |
コード長 | 6,330 bytes |
コンパイル時間 | 19,868 ms |
コンパイル使用メモリ | 382,448 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-09-23 04:07:03 |
合計ジャッジ時間 | 18,006 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 2 WA * 19 |
コンパイルメッセージ
warning: unused macro definition: `input_inner` --> src/main.rs:89:14 | 89 | macro_rules! input_inner { | ^^^^^^^^^^^ | = note: `#[warn(unused_macros)]` on by default warning: unused macro definition: `mydbg` --> src/main.rs:142:14 | 142 | macro_rules! mydbg { | ^^^^^
ソースコード
#![allow(unused_parens)]#![allow(unused_imports)]#![allow(non_upper_case_globals)]#![allow(non_snake_case)]#![allow(unused_mut)]#![allow(unused_variables)]#![allow(dead_code)]type Vec2<T> = Vec<Vec<T>>;type Vec3<T> = Vec<Vec<Vec<T>>>;#[allow(unused_macros)]macro_rules! invec {( $ t : ty ) => {{let mut s = String::new();match std::io::stdin().read_line(&mut s) {Ok(0) => Vec::<$t>::new(),Ok(n) => s.trim().split_whitespace().map(|s| s.parse::<$t>().unwrap()).collect::<Vec<$t>>(),Err(_) => Vec::<$t>::new(),}}};}#[allow(unused_macros)]macro_rules! get {($t:ty) => {{let mut line: String = String::new();std::io::stdin().read_line(&mut line).unwrap();line.trim().parse::<$t>().unwrap()}};($($t:ty),*) => {{let mut line: String = String::new();std::io::stdin().read_line(&mut line).unwrap();let mut iter = line.split_whitespace();($(iter.next().unwrap().parse::<$t>().unwrap(),)*)}};($t:ty; $n:expr) => {(0..$n).map(|_|get!($t)).collect::<Vec<_>>()};($($t:ty),*; $n:expr) => {(0..$n).map(|_|get!($($t),*)).collect::<Vec<_>>()};($t:ty ;;) => {{let mut line: String = String::new();std::io::stdin().read_line(&mut line).unwrap();line.split_whitespace().map(|t| t.parse::<$t>().unwrap()).collect::<Vec<_>>()}};($t:ty ;; $n:expr) => {(0..$n).map(|_| get!($t ;;)).collect::<Vec<_>>()};}#[allow(unused_macros)]macro_rules! input {(source = $s:expr, $($r:tt)*) => {let mut iter = $s.split_whitespace();input_inner!{iter, $($r)*}};($($r:tt)*) => {let mut s = {use std::io::Read;let mut s = String::new();std::io::stdin().read_to_string(&mut s).unwrap();s};let mut iter = s.split_whitespace();input_inner!{iter, $($r)*}};}macro_rules! input_inner {($iter:expr) => {};($iter:expr, ) => {};($iter:expr, $var:ident : $t:tt $($r:tt)*) => {let $var = read_value!($iter, $t);input_inner!{$iter $($r)*}};($iter:expr, mut $var:ident : $t:tt $($r:tt)*) => {let mut $var = read_value!($iter, $t);input_inner!{$iter $($r)*}};}#[allow(unused_macros)]macro_rules! read_value {($iter:expr, ( $($t:tt),* )) => {( $(read_value!($iter, $t)),* )};($iter:expr, [ $t:tt ; $len:expr ]) => {(0..$len).map(|_| read_value!($iter, $t)).collect::<Vec<_>>()};($next:expr, [$t:tt]) => {{let len = read_value!($next, usize);(0..len).map(|_| read_value!($next, $t)).collect::<Vec<_>>()}};($iter:expr, chars) => {read_value!($iter, String).chars().collect::<Vec<char>>()};($iter:expr, usize1) => {read_value!($iter, usize) - 1};($iter:expr, $t:ty) => {$iter.next().unwrap().parse::<$t>().expect("Parse error")};}#[allow(unused_macros)]#[cfg(debug_assertions)]macro_rules! mydbg {//($arg:expr) => (dbg!($arg))//($arg:expr) => (println!("{:?}",$arg));($($a:expr),*) => {eprintln!(concat!($(stringify!($a), " = {:?}, "),*), $($a),*);}}#[cfg(not(debug_assertions))]macro_rules! mydbg {($($arg:expr),*) => {};}macro_rules! echo {($($a:expr),*) => {$(println!("{}",$a))*}}use std::cmp::*;use std::collections::*;use std::ops::{Add, Div, Mul, Rem, Sub};trait SafeRangeContain {fn safe_contains(&self, x: i64) -> bool;}impl SafeRangeContain for std::ops::Range<usize> {fn safe_contains(&self, x: i64) -> bool {if x < 0 {return false;}return self.contains(&(x as usize));}}#[allow(dead_code)]static INF_I64: i64 = i64::max_value() / 2;#[allow(dead_code)]static INF_I32: i32 = i32::max_value() / 2;#[allow(dead_code)]static INF_USIZE: usize = usize::max_value() / 2;#[allow(dead_code)]static M_O_D: usize = 1000000007;#[allow(dead_code)]static PAI: f64 = 3.1415926535897932;trait IteratorExt: Iterator {fn toVec(self) -> Vec<Self::Item>;}impl<T: Iterator> IteratorExt for T {fn toVec(self) -> Vec<Self::Item> {self.collect()}}trait CharExt {fn toNum(&self) -> usize;fn toAlphabetIndex(&self) -> usize;fn toNumIndex(&self) -> usize;}impl CharExt for char {fn toNum(&self) -> usize {return *self as usize;}fn toAlphabetIndex(&self) -> usize {return self.toNum() - 'a' as usize;}fn toNumIndex(&self) -> usize {return self.toNum() - '0' as usize;}}trait VectorExt {fn joinToString(&self, s: &str) -> String;}impl<T: ToString> VectorExt for Vec<T> {fn joinToString(&self, s: &str) -> String {return self.iter().map(|x| x.to_string()).collect::<Vec<_>>().join(s);}}trait StringExt {fn get_reverse(&self) -> String;}impl StringExt for String {fn get_reverse(&self) -> String {self.chars().rev().collect::<String>()}}trait UsizeExt {fn pow(&self, n: usize) -> usize;}impl UsizeExt for usize {fn pow(&self, n: usize) -> usize {return ((*self as u64).pow(n as u32)) as usize;}}fn main() {solve();}fn solve() {let mut ans: u64 = 0;let N = get!(usize);let mut A = invec!(usize).into_iter().collect::<BinaryHeap<_>>();for i in 0..60 {let k = A.iter().next().unwrap();let mut t = 0;if k >> i & 1 == 1 {t = 1 << i;}let mut pre = BinaryHeap::new();std::mem::swap(&mut A, &mut pre);while !pre.is_empty() {let a = pre.pop().unwrap();A.push(a ^ t);}}echo!(A.pop().unwrap());}