結果

問題 No.2357 Guess the Function
ユーザー tipstar0125tipstar0125
提出日時 2023-06-23 21:57:49
言語 Rust
(1.77.0 + proconio)
結果
WA  
実行時間 -
コード長 5,005 bytes
コンパイル時間 23,071 ms
コンパイル使用メモリ 388,564 KB
実行使用メモリ 25,220 KB
平均クエリ数 3.00
最終ジャッジ日時 2024-07-01 01:34:52
合計ジャッジ時間 14,821 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 27 ms
25,220 KB
testcase_01 WA -
testcase_02 WA -
testcase_03 WA -
testcase_04 AC 24 ms
24,580 KB
testcase_05 AC 23 ms
24,964 KB
testcase_06 WA -
testcase_07 WA -
testcase_08 WA -
testcase_09 WA -
testcase_10 WA -
権限があれば一括ダウンロードができます

ソースコード

diff #

#![allow(non_snake_case)]
#![allow(unused_imports)]
#![allow(unused_macros)]
#![allow(clippy::needless_range_loop)]
#![allow(clippy::comparison_chain)]
#![allow(clippy::nonminimal_bool)]
#![allow(clippy::neg_multiply)]
#![allow(dead_code)]
use std::cmp::Reverse;
use std::collections::{BTreeMap, BTreeSet, BinaryHeap, VecDeque};

#[derive(Default)]
struct Solver {}
impl Solver {
    fn solve(&mut self) {
        let mut v = vec![vec![vec![]; 101]; 101];
        for a in 0..=100 {
            for b in a + 1..=100 {
                v[a][b].push((a + 1) % b);
                v[a][b].push((a + 2) % b);
            }
        }
        println!("? 1");
        // input! {
        //     y0: usize
        // }
        let y0: usize = read();
        println!("? 2");
        // input! {
        //     y1: usize
        // }
        let y1: usize = read();
        for i in 0..=100 {
            for j in 0..=100 {
                // if v[i][j] == vec![y0, y1] || v[i][j] == vec![y1, y0] {
                if v[i][j] == vec![y0, y1] {
                    println!("! {} {}", i, j);
                    return;
                }
            }
        }
    }
}

fn main() {
    std::thread::Builder::new()
        .stack_size(128 * 1024 * 1024)
        .spawn(|| Solver::default().solve())
        .unwrap()
        .join()
        .unwrap();
}

fn read<T: std::str::FromStr>() -> T {
    let mut s = String::new();
    std::io::stdin().read_line(&mut s).ok();
    s.trim().parse().ok().unwrap()
}

fn read_vec<T: std::str::FromStr>() -> Vec<T> {
    read::<String>()
        .split_whitespace()
        .map(|e| e.parse().ok().unwrap())
        .collect()
}

// #[macro_export]
// macro_rules! input {
//     () => {};
//     (mut $var:ident: $t:tt, $($rest:tt)*) => {
//         let mut $var = __input_inner!($t);
//         input!($($rest)*)
//     };
//     ($var:ident: $t:tt, $($rest:tt)*) => {
//         let $var = __input_inner!($t);
//         input!($($rest)*)
//     };
//     (mut $var:ident: $t:tt) => {
//         let mut $var = __input_inner!($t);
//     };
//     ($var:ident: $t:tt) => {
//         let $var = __input_inner!($t);
//     };
// }

// #[macro_export]
// macro_rules! __input_inner {
//     (($($t:tt),*)) => {
//         ($(__input_inner!($t)),*)
//     };
//     ([$t:tt; $n:expr]) => {
//         (0..$n).map(|_| __input_inner!($t)).collect::<Vec<_>>()
//     };
//     ([$t:tt]) => {{
//         let n = __input_inner!(usize);
//         (0..n).map(|_| __input_inner!($t)).collect::<Vec<_>>()
//     }};
//     (chars) => {
//         __input_inner!(String).chars().collect::<Vec<_>>()
//     };
//     (bytes) => {
//         __input_inner!(String).into_bytes()
//     };
//     (usize1) => {
//         __input_inner!(usize) - 1
//     };
//     ($t:ty) => {
//         $crate::read::<$t>()
//     };
// }

// #[macro_export]
// macro_rules! println {
//     () => {
//         $crate::write(|w| {
//             use std::io::Write;
//             std::writeln!(w).unwrap()
//         })
//     };
//     ($($arg:tt)*) => {
//         $crate::write(|w| {
//             use std::io::Write;
//             std::writeln!(w, $($arg)*).unwrap()
//         })
//     };
// }

// #[macro_export]
// macro_rules! print {
//     ($($arg:tt)*) => {
//         $crate::write(|w| {
//             use std::io::Write;
//             std::write!(w, $($arg)*).unwrap()
//         })
//     };
// }

// #[macro_export]
// macro_rules! flush {
//     () => {
//         $crate::write(|w| {
//             use std::io::Write;
//             w.flush().unwrap()
//         })
//     };
// }

// pub fn read<T>() -> T
// where
//     T: std::str::FromStr,
//     T::Err: std::fmt::Debug,
// {
//     use std::cell::RefCell;
//     use std::io::*;

//     thread_local! {
//         pub static STDIN: RefCell<StdinLock<'static>> = RefCell::new(stdin().lock());
//     }

//     STDIN.with(|r| {
//         let mut r = r.borrow_mut();
//         let mut s = vec![];
//         loop {
//             let buf = r.fill_buf().unwrap();
//             if buf.is_empty() {
//                 break;
//             }
//             if let Some(i) = buf.iter().position(u8::is_ascii_whitespace) {
//                 s.extend_from_slice(&buf[..i]);
//                 r.consume(i + 1);
//                 if !s.is_empty() {
//                     break;
//                 }
//             } else {
//                 s.extend_from_slice(buf);
//                 let n = buf.len();
//                 r.consume(n);
//             }
//         }
//         std::str::from_utf8(&s).unwrap().parse().unwrap()
//     })
// }

// pub fn write<F>(f: F)
// where
//     F: FnOnce(&mut std::io::BufWriter<std::io::StdoutLock>),
// {
//     use std::cell::RefCell;
//     use std::io::*;

//     thread_local! {
//         pub static STDOUT: RefCell<BufWriter<StdoutLock<'static>>> =
//             RefCell::new(BufWriter::new(stdout().lock()));
//     }

//     STDOUT.with(|w| f(&mut w.borrow_mut()))
// }
0