結果
| 問題 |
No.2357 Guess the Function
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2023-06-23 21:57:49 |
| 言語 | Rust (1.83.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 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 2 WA * 8 |
ソースコード
#![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()))
// }