結果
| 問題 |
No.2819 Binary Binary-Operator
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2024-07-26 23:45:39 |
| 言語 | Rust (1.83.0 + proconio) |
| 結果 |
AC
|
| 実行時間 | 25 ms / 2,000 ms |
| コード長 | 2,001 bytes |
| コンパイル時間 | 27,455 ms |
| コンパイル使用メモリ | 399,448 KB |
| 実行使用メモリ | 25,496 KB |
| 平均クエリ数 | 3.00 |
| 最終ジャッジ日時 | 2024-07-26 23:46:12 |
| 合計ジャッジ時間 | 19,380 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 64 |
ソースコード
#![allow(
non_snake_case,
unused_variables,
unused_assignments,
unused_mut,
unused_imports,
unused_macros,
dead_code
)]
use proconio::input_interactive;
use std::cmp::*;
use std::collections::*;
macro_rules! debug {
($($a:expr),* $(,)*) => {
#[cfg(debug_assertions)]
eprintln!(concat!($("| ", stringify!($a), "={:?} "),*, "|"), $(&$a),*);
};
}
fn main() {
input_interactive! {x:usize,y:usize}
// 出力qのパターンを総当たりしてみる。n=4でいけそう?
for q in 0..16 {
let mut v = vec![0; 4];
for i in 0..4 {
if q & (1 << i) != 0 {
v[i] = 1;
}
}
// return valueがそれぞれの時について、確定するかどうかを考える。
// 成立パターンが存在すること。
// 他方の値にならないこと。
let mut valid_count = 0;
let mut valid_set = vec![vec![]; 2];
for pat in 0..16 {
let mut p = vec![vec![0; 2]; 2];
p[0][0] = if pat & (1 << 0) != 0 { 1 } else { 0 };
p[0][1] = if pat & (1 << 1) != 0 { 1 } else { 0 };
p[1][0] = if pat & (1 << 2) != 0 { 1 } else { 0 };
p[1][1] = if pat & (1 << 3) != 0 { 1 } else { 0 };
let mut tmp = v[0];
for i in 1..v.len() {
tmp = p[tmp][v[i]];
}
valid_set[tmp].push(p[x][y]);
}
valid_set[0].sort();
valid_set[1].sort();
valid_set[0].dedup();
valid_set[1].dedup();
if valid_set[0].len() == 1 && valid_set[1].len() == 1 && valid_set[0] != valid_set[1] {
println!("4\n{} {} {} {}", v[0],v[1],v[2],v[3]);
input_interactive!{val:usize}
println!("{}",valid_set[val][0]);
return;
}
}
}