結果
問題 |
No.5001 排他的論理和でランニング
|
ユーザー |
![]() |
提出日時 | 2018-03-17 00:35:27 |
言語 | Rust (1.83.0 + proconio) |
結果 |
AC
|
実行時間 | 914 ms / 1,500 ms |
コード長 | 1,080 bytes |
コンパイル時間 | 644 ms |
実行使用メモリ | 7,420 KB |
スコア | 52,424,915 |
最終ジャッジ日時 | 2020-03-12 19:46:25 |
ジャッジサーバーID (参考情報) |
judge8 / |
純コード判定しない問題か言語 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 50 |
ソースコード
use std::io::{stdin, Read}; fn main() { let mut buf = String::new(); stdin().read_to_string(&mut buf).unwrap(); let mut buf = buf.split_whitespace(); let mut get = || buf.next().unwrap().parse::<i32>().unwrap(); let n = get() as usize; let m = get() as usize; let mut xs = vec![]; for _ in 0..n { xs.push(get()); } let mut v = 0; for i in 0..m { v ^= xs[i]; } if m < n { for i in 0..500 { for j in 0..n { let mut i = (j % 19 + j * 3 + i * i + (j + i) % 7 + m + i % 103 + i % 31) % n; if i < m { if n == m { i = m; } else { i = m + i % (n - m); } } let e = v ^ xs[j] ^ xs[i]; if e > v { xs.swap(i, j); v = e; } } } } for i in 0..m { if i > 0 { print!(" "); } print!("{}", xs[i]); } println!(); }