QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#853830 | #9734. Identify Chord | ucup-team296# | RE | 48ms | 2288kb | Rust | 17.2kb | 2025-01-11 19:34:08 | 2025-01-11 19:34:11 |
Judging History
answer
// https://contest.ucup.ac/contest/1893/problem/9734
use crate::algo_lib::io::input::Input;
use crate::algo_lib::io::output::Output;
use crate::algo_lib::misc::test_type::TaskType;
use crate::algo_lib::misc::test_type::TestType;
type PreCalc = ();
fn solve(input: &mut Input, out: &mut Output, _test_case: usize, _data: &mut PreCalc) {
let n = input.read_size();
let mut query = |a: usize, b: usize| -> usize {
output!(out, "? {} {}", a % n + 1, b % n + 1);
out.flush();
input.read_size()
};
let mut base = 0;
let base_res = loop {
let res = query(base, base + n / 2);
if res != n / 2 {
break res;
}
base += 1;
};
let end = base + n / 2;
let (one_end, dist_to_end) = if query(base + 1, end) < base_res {
let mut left = base + 1;
let mut right = end - 1;
while left < right {
let mid = (left + right + 1) / 2;
let res = query(mid, end);
if res + (mid - base) == base_res {
left = mid;
} else {
right = mid - 1;
}
}
(left, base_res - (left - base))
} else if query(base + n - 1, end) < base_res {
let mut left = end + 1;
let mut right = base + n - 1;
while left < right {
let mid = (left + right) / 2;
let res = query(mid, end);
if res + (base + n - mid) == base_res {
right = mid;
} else {
left = mid + 1;
}
}
(left, base_res - (base + n - left))
} else {
(base, base_res)
};
if dist_to_end == 1 {
output!(out, "! {} {}", one_end % n + 1, end % n + 1);
} else {
if query(one_end, end + dist_to_end - 1) == 1 {
output!(out, "! {} {}", one_end % n + 1, (end + dist_to_end - 1) % n + 1);
} else {
output!(
out, "! {} {}", one_end % n + 1, (end + n - (dist_to_end - 1)) % n + 1
);
}
}
out.flush();
assert_eq!(input.read_int(), 1);
}
pub static TEST_TYPE: TestType = TestType::MultiNumber;
pub static TASK_TYPE: TaskType = TaskType::Interactive;
pub(crate) fn run(mut input: Input, mut output: Output) -> bool {
let mut pre_calc = ();
match TEST_TYPE {
TestType::Single => solve(&mut input, &mut output, 1, &mut pre_calc),
TestType::MultiNumber => {
let t = input.read();
for i in 1..=t {
solve(&mut input, &mut output, i, &mut pre_calc);
}
}
TestType::MultiEof => {
let mut i = 1;
while input.peek().is_some() {
solve(&mut input, &mut output, i, &mut pre_calc);
i += 1;
}
}
}
output.flush();
match TASK_TYPE {
TaskType::Classic => input.is_empty(),
TaskType::Interactive => true,
}
}
fn main() {
let mut sin = std::io::stdin();
let input = crate::algo_lib::io::input::Input::new(&mut sin);
let mut stdout = std::io::stdout();
let output = crate::algo_lib::io::output::Output::new(&mut stdout);
run(input, output);
}
pub mod algo_lib {
pub mod collections {
pub mod vec_ext {
pub mod default {
pub fn default_vec<T: Default>(len: usize) -> Vec<T> {
let mut v = Vec::with_capacity(len);
for _ in 0..len {
v.push(T::default());
}
v
}
}
}
}
pub mod io {
pub mod input {
use crate::algo_lib::collections::vec_ext::default::default_vec;
use std::io::Read;
use std::mem::MaybeUninit;
pub struct Input<'s> {
input: &'s mut (dyn Read + Send),
buf: Vec<u8>,
at: usize,
buf_read: usize,
eol: bool,
}
macro_rules! read_impl {
($t:ty, $read_name:ident, $read_vec_name:ident) => {
pub fn $read_name (& mut self) -> $t { self.read() } pub fn $read_vec_name (& mut
self, len : usize) -> Vec <$t > { self.read_vec(len) }
};
($t:ty, $read_name:ident, $read_vec_name:ident, $read_pair_vec_name:ident) => {
read_impl!($t, $read_name, $read_vec_name); pub fn $read_pair_vec_name (& mut
self, len : usize) -> Vec < ($t, $t) > { self.read_vec(len) }
};
}
impl<'s> Input<'s> {
const DEFAULT_BUF_SIZE: usize = 4096;
pub fn new(input: &'s mut (dyn Read + Send)) -> Self {
Self {
input,
buf: default_vec(Self::DEFAULT_BUF_SIZE),
at: 0,
buf_read: 0,
eol: true,
}
}
pub fn new_with_size(input: &'s mut (dyn Read + Send), buf_size: usize) -> Self {
Self {
input,
buf: default_vec(buf_size),
at: 0,
buf_read: 0,
eol: true,
}
}
pub fn get(&mut self) -> Option<u8> {
if self.refill_buffer() {
let res = self.buf[self.at];
self.at += 1;
if res == b'\r' {
self.eol = true;
if self.refill_buffer() && self.buf[self.at] == b'\n' {
self.at += 1;
}
return Some(b'\n');
}
self.eol = res == b'\n';
Some(res)
} else {
None
}
}
pub fn peek(&mut self) -> Option<u8> {
if self.refill_buffer() {
let res = self.buf[self.at];
Some(if res == b'\r' { b'\n' } else { res })
} else {
None
}
}
pub fn skip_whitespace(&mut self) {
while let Some(b) = self.peek() {
if !b.is_ascii_whitespace() {
return;
}
self.get();
}
}
pub fn next_token(&mut self) -> Option<Vec<u8>> {
self.skip_whitespace();
let mut res = Vec::new();
while let Some(c) = self.get() {
if c.is_ascii_whitespace() {
break;
}
res.push(c);
}
if res.is_empty() { None } else { Some(res) }
}
pub fn is_exhausted(&mut self) -> bool {
self.peek().is_none()
}
pub fn is_empty(&mut self) -> bool {
self.skip_whitespace();
self.is_exhausted()
}
pub fn read<T: Readable>(&mut self) -> T {
T::read(self)
}
pub fn read_vec<T: Readable>(&mut self, size: usize) -> Vec<T> {
let mut res = Vec::with_capacity(size);
for _ in 0..size {
res.push(self.read());
}
res
}
pub fn read_char(&mut self) -> u8 {
self.skip_whitespace();
self.get().unwrap()
}
read_impl!(u32, read_unsigned, read_unsigned_vec);
read_impl!(u64, read_u64, read_u64_vec);
read_impl!(usize, read_size, read_size_vec, read_size_pair_vec);
read_impl!(i32, read_int, read_int_vec, read_int_pair_vec);
read_impl!(i64, read_long, read_long_vec, read_long_pair_vec);
read_impl!(i128, read_i128, read_i128_vec);
fn refill_buffer(&mut self) -> bool {
if self.at == self.buf_read {
self.at = 0;
self.buf_read = self.input.read(&mut self.buf).unwrap();
self.buf_read != 0
} else {
true
}
}
pub fn is_eol(&self) -> bool {
self.eol
}
}
pub trait Readable {
fn read(input: &mut Input) -> Self;
}
impl Readable for u8 {
fn read(input: &mut Input) -> Self {
input.read_char()
}
}
impl<T: Readable> Readable for Vec<T> {
fn read(input: &mut Input) -> Self {
let size = input.read();
input.read_vec(size)
}
}
impl<T: Readable, const SIZE: usize> Readable for [T; SIZE] {
fn read(input: &mut Input) -> Self {
unsafe {
let mut res = MaybeUninit::<[T; SIZE]>::uninit();
for i in 0..SIZE {
let ptr: *mut T = (*res.as_mut_ptr()).as_mut_ptr();
ptr.add(i).write(input.read::<T>());
}
res.assume_init()
}
}
}
macro_rules! read_integer {
($($t:ident)+) => {
$(impl Readable for $t { fn read(input : & mut Input) -> Self { input
.skip_whitespace(); let mut c = input.get().unwrap(); let sgn = match c { b'-' =>
{ c = input.get().unwrap(); true } b'+' => { c = input.get().unwrap(); false } _
=> false, }; let mut res = 0; loop { assert!(c.is_ascii_digit()); res *= 10; let
d = (c - b'0') as $t; if sgn { res -= d; } else { res += d; } match input.get() {
None => break, Some(ch) => { if ch.is_ascii_whitespace() { break; } else { c =
ch; } } } } res } })+
};
}
read_integer!(i8 i16 i32 i64 i128 isize u16 u32 u64 u128 usize);
macro_rules! tuple_readable {
($($name:ident)+) => {
impl <$($name : Readable),+> Readable for ($($name,)+) { fn read(input : & mut
Input) -> Self { ($($name ::read(input),)+) } }
};
}
tuple_readable! {
T
}
tuple_readable! {
T U
}
tuple_readable! {
T U V
}
tuple_readable! {
T U V X
}
tuple_readable! {
T U V X Y
}
tuple_readable! {
T U V X Y Z
}
tuple_readable! {
T U V X Y Z A
}
tuple_readable! {
T U V X Y Z A B
}
tuple_readable! {
T U V X Y Z A B C
}
tuple_readable! {
T U V X Y Z A B C D
}
tuple_readable! {
T U V X Y Z A B C D E
}
tuple_readable! {
T U V X Y Z A B C D E F
}
}
pub mod output {
use crate::algo_lib::collections::vec_ext::default::default_vec;
use std::cmp::Reverse;
use std::io::{stderr, Stderr, Write};
#[derive(Copy, Clone)]
pub enum BoolOutput {
YesNo,
YesNoCaps,
PossibleImpossible,
Custom(&'static str, &'static str),
}
impl BoolOutput {
pub fn output(&self, output: &mut Output, val: bool) {
(if val { self.yes() } else { self.no() }).write(output);
}
fn yes(&self) -> &str {
match self {
BoolOutput::YesNo => "Yes",
BoolOutput::YesNoCaps => "YES",
BoolOutput::PossibleImpossible => "Possible",
BoolOutput::Custom(yes, _) => yes,
}
}
fn no(&self) -> &str {
match self {
BoolOutput::YesNo => "No",
BoolOutput::YesNoCaps => "NO",
BoolOutput::PossibleImpossible => "Impossible",
BoolOutput::Custom(_, no) => no,
}
}
}
pub struct Output<'s> {
output: &'s mut dyn Write,
buf: Vec<u8>,
at: usize,
auto_flush: bool,
bool_output: BoolOutput,
precision: Option<usize>,
separator: u8,
}
impl<'s> Output<'s> {
const DEFAULT_BUF_SIZE: usize = 4096;
pub fn new(output: &'s mut dyn Write) -> Self {
Self {
output,
buf: default_vec(Self::DEFAULT_BUF_SIZE),
at: 0,
auto_flush: false,
bool_output: BoolOutput::YesNoCaps,
precision: None,
separator: b' ',
}
}
pub fn new_with_auto_flush(output: &'s mut dyn Write) -> Self {
Self {
output,
buf: default_vec(Self::DEFAULT_BUF_SIZE),
at: 0,
auto_flush: true,
bool_output: BoolOutput::YesNoCaps,
precision: None,
separator: b' ',
}
}
pub fn flush(&mut self) {
if self.at != 0 {
self.output.write_all(&self.buf[..self.at]).unwrap();
self.output.flush().unwrap();
self.at = 0;
}
}
pub fn print<T: Writable>(&mut self, s: T) {
s.write(self);
self.maybe_flush();
}
pub fn print_line<T: Writable>(&mut self, s: T) {
self.print(s);
self.put(b'\n');
self.maybe_flush();
}
pub fn put(&mut self, b: u8) {
self.buf[self.at] = b;
self.at += 1;
if self.at == self.buf.len() {
self.flush();
}
}
pub fn maybe_flush(&mut self) {
if self.auto_flush {
self.flush();
}
}
pub fn print_per_line<T: Writable>(&mut self, arg: &[T]) {
self.print_per_line_iter(arg.iter());
}
pub fn print_iter<T: Writable, I: Iterator<Item = T>>(&mut self, iter: I) {
let mut first = true;
for e in iter {
if first {
first = false;
} else {
self.put(self.separator);
}
e.write(self);
}
}
pub fn print_line_iter<T: Writable, I: Iterator<Item = T>>(&mut self, iter: I) {
self.print_iter(iter);
self.put(b'\n');
}
pub fn print_per_line_iter<T: Writable, I: Iterator<Item = T>>(&mut self, iter: I) {
for e in iter {
e.write(self);
self.put(b'\n');
}
}
pub fn set_bool_output(&mut self, bool_output: BoolOutput) {
self.bool_output = bool_output;
}
pub fn set_precision(&mut self, precision: usize) {
self.precision = Some(precision);
}
pub fn reset_precision(&mut self) {
self.precision = None;
}
pub fn get_precision(&self) -> Option<usize> {
self.precision
}
pub fn separator(&self) -> u8 {
self.separator
}
pub fn set_separator(&mut self, separator: u8) {
self.separator = separator;
}
}
impl Write for Output<'_> {
fn write(&mut self, buf: &[u8]) -> std::io::Result<usize> {
let mut start = 0usize;
let mut rem = buf.len();
while rem > 0 {
let len = (self.buf.len() - self.at).min(rem);
self.buf[self.at..self.at + len].copy_from_slice(&buf[start..start + len]);
self.at += len;
if self.at == self.buf.len() {
self.flush();
}
start += len;
rem -= len;
}
self.maybe_flush();
Ok(buf.len())
}
fn flush(&mut self) -> std::io::Result<()> {
self.flush();
Ok(())
}
}
pub trait Writable {
fn write(&self, output: &mut Output);
}
impl Writable for &str {
fn write(&self, output: &mut Output) {
output.write_all(self.as_bytes()).unwrap();
}
}
impl Writable for String {
fn write(&self, output: &mut Output) {
output.write_all(self.as_bytes()).unwrap();
}
}
impl Writable for char {
fn write(&self, output: &mut Output) {
output.put(*self as u8);
}
}
impl Writable for u8 {
fn write(&self, output: &mut Output) {
output.put(*self);
}
}
impl<T: Writable> Writable for [T] {
fn write(&self, output: &mut Output) {
output.print_iter(self.iter());
}
}
impl<T: Writable, const N: usize> Writable for [T; N] {
fn write(&self, output: &mut Output) {
output.print_iter(self.iter());
}
}
impl<T: Writable + ?Sized> Writable for &T {
fn write(&self, output: &mut Output) {
T::write(self, output)
}
}
impl<T: Writable> Writable for Vec<T> {
fn write(&self, output: &mut Output) {
self.as_slice().write(output);
}
}
impl Writable for () {
fn write(&self, _output: &mut Output) {}
}
macro_rules! write_to_string {
($($t:ident)+) => {
$(impl Writable for $t { fn write(& self, output : & mut Output) { self
.to_string().write(output); } })+
};
}
write_to_string!(u16 u32 u64 u128 usize i8 i16 i32 i64 i128 isize);
macro_rules! tuple_writable {
($name0:ident $($name:ident : $id:tt)*) => {
impl <$name0 : Writable, $($name : Writable,)*> Writable for ($name0, $($name,)*)
{ fn write(& self, out : & mut Output) { self.0.write(out); $(out.put(out
.separator); self.$id .write(out);)* } }
};
}
tuple_writable! {
T
}
tuple_writable! {
T U : 1
}
tuple_writable! {
T U : 1 V : 2
}
tuple_writable! {
T U : 1 V : 2 X : 3
}
tuple_writable! {
T U : 1 V : 2 X : 3 Y : 4
}
tuple_writable! {
T U : 1 V : 2 X : 3 Y : 4 Z : 5
}
tuple_writable! {
T U : 1 V : 2 X : 3 Y : 4 Z : 5 A : 6
}
tuple_writable! {
T U : 1 V : 2 X : 3 Y : 4 Z : 5 A : 6 B : 7
}
tuple_writable! {
T U : 1 V : 2 X : 3 Y : 4 Z : 5 A : 6 B : 7 C : 8
}
impl<T: Writable> Writable for Option<T> {
fn write(&self, output: &mut Output) {
match self {
None => (-1).write(output),
Some(t) => t.write(output),
}
}
}
impl Writable for bool {
fn write(&self, output: &mut Output) {
let bool_output = output.bool_output;
bool_output.output(output, *self)
}
}
impl<T: Writable> Writable for Reverse<T> {
fn write(&self, output: &mut Output) {
self.0.write(output);
}
}
static mut ERR: Option<Stderr> = None;
pub fn err() -> Output<'static> {
unsafe {
if ERR.is_none() {
ERR = Some(stderr());
}
Output::new_with_auto_flush(ERR.as_mut().unwrap())
}
}
}
pub mod output_macro {
#[macro_export]
macro_rules! output {
($output:expr, $($arg:tt)*) => {
$output .print_line(format!($($arg)*));
};
}
}
}
pub mod misc {
pub mod test_type {
pub enum TestType {
Single,
MultiNumber,
MultiEof,
}
pub enum TaskType {
Classic,
Interactive,
}
}
}
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 2064kb
input:
2 6 2 1 1 1 4 1 1 1 1
output:
? 1 4 ? 2 4 ? 3 4 ! 2 4 ? 1 3 ? 2 3 ? 4 3 ! 1 3
result:
ok ok (2 test cases)
Test #2:
score: 0
Accepted
time: 14ms
memory: 2064kb
input:
1000 15 5 4 1 2 1 19 5 4 4 4 3 1 1 17 5 4 4 3 4 1 1 15 6 6 7 3 1 14 5 4 3 5 5 1 15 3 2 3 3 1 1 17 8 8 6 5 4 4 5 1 1 20 6 7 7 5 1 13 5 5 4 3 3 2 3 1 18 3 4 2 4 4 3 1 1 13 4 5 3 3 4 1 1 14 2 3 1 3 2 1 17 8 6 5 2 2 3 1 1 12 5 4 3 3 1 1 10 5 5 3 2 2 1 1 14 6 5 2 1 1 1 19 8 8 7 5 7 6 1 1 19 6 5 4 6 6 1 1...
output:
? 1 8 ? 2 8 ? 5 8 ? 6 8 ! 5 8 ? 1 10 ? 2 10 ? 6 10 ? 4 10 ? 3 10 ? 3 12 ! 3 12 ? 1 9 ? 2 9 ? 5 9 ? 3 9 ? 4 9 ? 3 11 ! 3 11 ? 1 8 ? 2 8 ? 15 8 ? 1 13 ! 1 3 ? 1 8 ? 2 8 ? 5 8 ? 3 8 ? 2 11 ! 2 5 ? 1 8 ? 2 8 ? 5 8 ? 3 8 ? 2 9 ! 2 9 ? 1 9 ? 2 10 ? 3 11 ? 4 11 ? 7 11 ? 5 11 ? 6 11 ? 5 14 ! 5 14 ? 1 11 ? 2...
result:
ok ok (1000 test cases)
Test #3:
score: 0
Accepted
time: 0ms
memory: 2100kb
input:
1000 21 3 4 2 5 4 3 3 1 22 8 7 5 7 6 1 1 20 5 4 2 2 1 1 22 10 9 4 3 4 1 1 21 9 8 4 3 3 1 1 21 8 9 7 5 5 6 1 1 24 11 11 10 5 3 4 4 2 1 22 10 10 9 4 2 2 1 1 21 4 3 5 5 4 1 1 23 8 9 7 6 9 8 1 1 21 10 10 8 7 3 3 4 1 1 24 9 8 3 3 2 3 1 1 20 9 9 8 4 2 1 1 1 24 11 10 5 2 2 3 1 23 8 9 9 5 1 23 7 6 5 6 5 1 1...
output:
? 1 11 ? 2 11 ? 21 11 ? 16 11 ? 19 11 ? 20 11 ? 21 12 ! 21 10 ? 1 12 ? 2 12 ? 7 12 ? 4 12 ? 3 12 ? 3 17 ! 3 17 ? 1 11 ? 2 11 ? 6 11 ? 4 11 ? 5 11 ! 5 11 ? 1 12 ? 2 12 ? 7 12 ? 9 12 ? 8 12 ? 7 15 ! 7 15 ? 1 11 ? 2 11 ? 6 11 ? 8 11 ? 7 11 ? 7 13 ! 7 13 ? 1 11 ? 2 11 ? 21 11 ? 16 11 ? 19 11 ? 18 11 ? 1...
result:
ok ok (1000 test cases)
Test #4:
score: 0
Accepted
time: 14ms
memory: 2140kb
input:
1000 25 8 9 9 6 1 25 6 7 5 6 8 6 8 1 25 11 11 10 6 9 9 8 3 1 25 5 4 6 4 3 5 1 26 12 12 11 5 3 5 1 1 26 11 12 10 6 9 9 10 3 1 26 13 13 11 12 12 1 1 27 12 11 5 3 5 9 1 25 9 10 8 2 3 1 2 1 27 9 8 6 7 7 6 11 1 27 11 12 10 4 4 5 1 1 27 13 13 12 11 6 8 7 7 1 1 26 5 6 4 6 5 3 4 1 1 25 11 11 10 6 9 11 3 1 2...
output:
? 1 13 ? 2 13 ? 25 13 ? 1 20 ! 1 6 ? 1 13 ? 2 13 ? 25 13 ? 19 13 ? 22 13 ? 24 13 ? 25 17 ! 25 9 ? 1 13 ? 2 13 ? 25 13 ? 19 13 ? 22 13 ? 24 13 ? 23 13 ? 23 20 ! 23 6 ? 1 13 ? 2 13 ? 7 13 ? 4 13 ? 3 13 ? 3 15 ! 3 11 ? 1 14 ? 2 14 ? 26 14 ? 20 14 ? 17 14 ? 19 14 ? 20 18 ! 20 18 ? 1 14 ? 2 14 ? 26 14 ? ...
result:
ok ok (1000 test cases)
Test #5:
score: 0
Accepted
time: 4ms
memory: 2140kb
input:
1000 29 10 9 7 10 8 9 1 1 28 13 13 12 7 9 8 8 2 1 30 3 2 7 5 3 1 1 29 4 3 7 6 4 5 1 28 8 9 7 3 4 3 2 3 1 29 6 5 7 6 4 5 1 1 29 9 10 8 7 7 7 6 1 1 28 11 10 4 4 5 7 1 30 4 5 3 6 2 2 1 1 30 8 9 7 4 4 2 3 3 1 28 11 10 4 3 3 2 1 1 29 14 14 14 14 14 14 14 13 12 6 3 1 1 1 29 11 10 7 10 9 10 9 1 29 7 8 6 3 ...
output:
? 1 15 ? 2 15 ? 8 15 ? 5 15 ? 3 15 ? 4 15 ? 3 22 ! 3 22 ? 1 15 ? 2 15 ? 28 15 ? 22 15 ? 25 15 ? 24 15 ? 23 15 ? 24 22 ! 24 8 ? 1 16 ? 2 16 ? 9 16 ? 5 16 ? 3 16 ? 2 17 ! 2 17 ? 1 15 ? 2 15 ? 8 15 ? 5 15 ? 3 15 ? 2 17 ! 2 13 ? 1 15 ? 2 15 ? 28 15 ? 22 15 ? 25 15 ? 24 15 ? 23 15 ? 23 16 ! 23 14 ? 1 15 ...
result:
ok ok (1000 test cases)
Test #6:
score: 0
Accepted
time: 0ms
memory: 2112kb
input:
1000 32 13 12 8 9 10 10 12 1 30 14 14 13 7 11 12 11 1 1 32 16 16 14 13 8 10 8 9 1 1 31 5 4 7 3 3 2 3 1 32 7 6 8 7 5 6 1 1 32 8 7 8 10 8 1 1 31 15 13 12 5 4 4 3 1 1 31 6 7 5 8 8 6 1 1 32 12 11 4 4 4 3 5 1 30 14 14 13 7 10 9 9 1 1 31 11 12 10 8 9 9 8 6 1 31 10 11 9 2 4 4 3 1 1 33 7 8 8 11 1 32 11 10 8...
output:
? 1 17 ? 2 17 ? 9 17 ? 5 17 ? 7 17 ? 6 17 ? 5 25 ! 5 9 ? 1 16 ? 2 16 ? 30 16 ? 23 16 ? 27 16 ? 29 16 ? 28 16 ? 28 26 ! 28 26 ? 1 17 ? 2 18 ? 3 19 ? 4 19 ? 11 19 ? 7 19 ? 9 19 ? 10 19 ? 9 26 ! 9 26 ? 1 16 ? 2 16 ? 9 16 ? 5 16 ? 3 16 ? 4 16 ? 4 17 ! 4 15 ? 1 17 ? 2 17 ? 9 17 ? 5 17 ? 3 17 ? 4 17 ? 3 2...
result:
ok ok (1000 test cases)
Test #7:
score: 0
Accepted
time: 0ms
memory: 2280kb
input:
1000 34 17 16 15 8 12 13 13 1 1 33 8 7 6 4 4 3 5 1 33 11 12 10 8 10 8 9 1 1 34 11 12 10 8 10 8 9 7 1 34 11 10 8 12 12 11 1 1 35 14 15 15 5 1 34 8 9 7 8 9 7 6 10 1 34 14 13 8 11 11 10 1 1 34 16 15 8 12 13 13 8 1 33 9 10 8 8 4 6 5 1 1 33 16 16 15 14 7 3 1 1 1 34 16 16 16 1 1 33 13 14 12 4 4 4 3 5 1 34...
output:
? 1 18 ? 2 19 ? 3 19 ? 11 19 ? 7 19 ? 5 19 ? 6 19 ? 5 31 ! 5 31 ? 1 17 ? 2 17 ? 9 17 ? 5 17 ? 7 17 ? 6 17 ? 6 19 ! 6 15 ? 1 17 ? 2 17 ? 33 17 ? 25 17 ? 29 17 ? 31 17 ? 30 17 ? 31 24 ! 31 24 ? 1 18 ? 2 18 ? 34 18 ? 26 18 ? 30 18 ? 32 18 ? 31 18 ? 32 25 ! 32 11 ? 1 18 ? 2 18 ? 10 18 ? 6 18 ? 4 18 ? 3 ...
result:
ok ok (1000 test cases)
Test #8:
score: 0
Accepted
time: 5ms
memory: 2156kb
input:
1000 36 18 17 16 8 4 2 1 1 1 36 3 4 2 8 4 2 1 1 36 13 12 9 12 10 11 12 1 36 5 4 9 6 4 3 5 1 36 18 17 16 9 13 14 13 1 1 36 12 11 3 5 5 4 1 1 35 13 14 12 6 8 6 5 1 1 36 13 12 4 5 4 3 1 1 36 14 13 9 9 11 10 1 1 36 16 15 9 11 9 8 15 1 36 9 8 9 6 6 5 1 1 36 8 9 7 9 7 5 6 9 1 36 17 16 8 4 3 4 7 1 36 15 14...
output:
? 1 19 ? 2 20 ? 3 20 ? 11 20 ? 15 20 ? 17 20 ? 18 20 ? 19 20 ! 18 20 ? 1 19 ? 2 19 ? 36 19 ? 28 19 ? 32 19 ? 34 19 ? 35 19 ! 35 19 ? 1 19 ? 2 19 ? 10 19 ? 6 19 ? 4 19 ? 5 19 ? 4 28 ! 4 10 ? 1 19 ? 2 19 ? 10 19 ? 6 19 ? 4 19 ? 3 19 ? 3 21 ! 3 17 ? 1 19 ? 2 20 ? 3 20 ? 11 20 ? 7 20 ? 5 20 ? 6 20 ? 6 3...
result:
ok ok (1000 test cases)
Test #9:
score: 0
Accepted
time: 6ms
memory: 2224kb
input:
1000 37 17 17 16 7 5 7 6 3 1 36 17 17 16 8 5 7 8 1 1 38 9 8 7 4 4 3 5 1 37 15 14 6 4 4 3 1 1 37 12 13 11 2 4 2 1 1 36 8 9 7 9 7 5 6 1 1 37 6 7 5 9 7 5 4 1 1 37 18 18 17 16 9 12 10 10 1 1 37 17 17 16 7 3 1 2 1 37 8 7 7 3 5 4 1 1 37 10 11 9 9 11 9 8 1 1 37 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 ...
output:
? 1 19 ? 2 19 ? 37 19 ? 28 19 ? 24 19 ? 26 19 ? 27 19 ? 27 24 ! 27 14 ? 1 19 ? 2 19 ? 36 19 ? 28 19 ? 24 19 ? 26 19 ? 27 19 ? 28 26 ! 28 26 ? 1 20 ? 2 20 ? 11 20 ? 6 20 ? 8 20 ? 7 20 ? 7 22 ! 7 18 ? 1 19 ? 2 19 ? 10 19 ? 14 19 ? 12 19 ? 13 19 ? 13 21 ! 13 21 ? 1 19 ? 2 19 ? 37 19 ? 28 19 ? 24 19 ? 2...
result:
ok ok (1000 test cases)
Test #10:
score: 0
Accepted
time: 9ms
memory: 2104kb
input:
1000 39 18 17 8 5 6 6 1 1 38 8 9 7 6 3 3 2 1 1 38 19 19 17 16 7 5 5 6 1 1 39 12 11 9 14 13 12 11 1 38 15 16 14 5 3 3 2 1 1 39 4 5 5 1 1 39 18 18 17 10 15 17 16 3 1 38 18 17 8 4 2 1 1 1 39 14 15 15 1 1 39 11 10 7 6 4 5 7 1 39 9 8 9 10 8 7 1 1 38 19 18 17 8 4 2 1 1 1 39 15 16 14 5 5 3 4 5 1 38 12 13 1...
output:
? 1 20 ? 2 20 ? 11 20 ? 15 20 ? 13 20 ? 14 20 ? 13 25 ! 13 25 ? 1 20 ? 2 20 ? 38 20 ? 29 20 ? 34 20 ? 32 20 ? 33 20 ? 33 21 ! 33 21 ? 1 20 ? 2 21 ? 3 22 ? 4 22 ? 13 22 ? 17 22 ? 15 22 ? 16 22 ? 15 26 ! 15 26 ? 1 20 ? 2 20 ? 11 20 ? 6 20 ? 4 20 ? 3 20 ? 2 30 ! 2 10 ? 1 20 ? 2 20 ? 38 20 ? 29 20 ? 25 ...
result:
ok ok (1000 test cases)
Test #11:
score: 0
Accepted
time: 0ms
memory: 2268kb
input:
1000 40 12 11 10 7 7 6 1 1 40 18 17 8 5 8 7 1 1 40 15 14 10 15 14 13 1 1 40 8 9 9 13 1 40 16 17 15 6 5 4 3 4 1 1 40 15 16 14 9 10 8 7 8 6 1 41 13 14 14 9 1 40 7 8 6 10 6 4 5 1 1 40 18 19 17 8 3 3 4 1 1 40 6 5 10 5 3 4 5 1 40 4 3 10 7 5 4 5 1 41 12 11 10 11 9 10 1 1 40 17 18 16 9 12 10 9 8 4 1 40 18 ...
output:
? 1 21 ? 2 21 ? 11 21 ? 6 21 ? 8 21 ? 7 21 ? 7 26 ! 7 26 ? 1 21 ? 2 21 ? 11 21 ? 16 21 ? 13 21 ? 12 21 ? 12 27 ! 12 27 ? 1 21 ? 2 21 ? 11 21 ? 6 21 ? 4 21 ? 3 21 ? 3 33 ! 3 33 ? 1 21 ? 2 21 ? 40 21 ? 1 28 ! 1 14 ? 1 21 ? 2 21 ? 40 21 ? 31 21 ? 26 21 ? 29 21 ? 28 21 ? 27 21 ? 28 23 ! 28 23 ? 1 21 ? 2...
result:
ok ok (1000 test cases)
Test #12:
score: 0
Accepted
time: 10ms
memory: 2288kb
input:
1000 42 11 10 10 7 8 7 6 11 1 41 17 18 16 10 15 14 13 14 1 1 41 8 9 7 10 10 7 6 11 1 41 12 13 11 10 6 8 7 10 1 41 12 11 4 7 5 4 3 1 1 41 18 19 17 10 14 15 14 13 4 1 41 14 15 13 10 15 15 14 1 1 41 20 19 18 10 14 12 11 10 1 1 41 17 18 16 10 15 14 13 14 5 1 41 15 16 14 4 5 6 5 1 1 41 18 19 17 10 12 10 ...
output:
? 1 22 ? 2 22 ? 12 22 ? 7 22 ? 4 22 ? 5 22 ? 6 22 ? 6 27 ! 6 17 ? 1 21 ? 2 21 ? 41 21 ? 31 21 ? 36 21 ? 39 21 ? 38 21 ? 37 21 ? 38 33 ! 38 33 ? 1 21 ? 2 21 ? 41 21 ? 31 21 ? 36 21 ? 39 21 ? 40 21 ? 40 26 ! 40 16 ? 1 21 ? 2 21 ? 41 21 ? 31 21 ? 36 21 ? 34 21 ? 35 21 ? 36 26 ! 36 16 ? 1 21 ? 2 21 ? 11...
result:
ok ok (1000 test cases)
Test #13:
score: 0
Accepted
time: 19ms
memory: 2072kb
input:
1000 43 4 3 10 6 3 2 3 1 42 18 17 7 4 5 4 3 5 1 43 6 5 9 4 3 2 3 3 1 43 18 19 17 11 12 10 9 10 5 1 43 21 21 19 18 10 15 18 17 1 1 43 17 18 16 11 13 14 13 12 6 1 43 18 17 10 15 17 16 9 1 43 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 20 19 9 4 2 1 1 1 42 13 14 12 10 7 9 8 1 1...
output:
? 1 22 ? 2 22 ? 12 22 ? 7 22 ? 4 22 ? 3 22 ? 3 23 ! 3 21 ? 1 22 ? 2 22 ? 12 22 ? 17 22 ? 14 22 ? 15 22 ? 16 22 ? 16 24 ! 16 20 ? 1 22 ? 2 22 ? 12 22 ? 7 22 ? 4 22 ? 5 22 ? 6 22 ? 5 23 ! 5 21 ? 1 22 ? 2 22 ? 43 22 ? 33 22 ? 38 22 ? 36 22 ? 35 22 ? 34 22 ? 35 30 ! 35 14 ? 1 22 ? 2 23 ? 3 24 ? 4 24 ? 1...
result:
ok ok (1000 test cases)
Test #14:
score: 0
Accepted
time: 5ms
memory: 2136kb
input:
1000 44 22 22 20 19 11 16 17 18 1 1 44 11 10 11 9 8 7 8 1 1 43 11 12 10 6 5 3 4 1 1 43 21 21 20 19 9 5 7 6 5 1 1 44 19 18 11 16 19 19 1 1 44 16 15 11 14 13 12 13 15 1 44 17 18 16 6 5 4 3 4 5 1 44 10 9 7 4 4 3 1 1 43 13 14 12 4 7 5 4 3 5 1 43 4 5 3 11 6 3 2 1 1 44 9 8 8 3 5 4 5 1 44 20 21 21 3 1 44 1...
output:
? 1 23 ? 2 24 ? 3 25 ? 4 25 ? 14 25 ? 9 25 ? 6 25 ? 7 25 ? 6 41 ! 6 41 ? 1 23 ? 2 23 ? 12 23 ? 7 23 ? 4 23 ? 5 23 ? 6 23 ? 5 29 ! 5 29 ? 1 22 ? 2 22 ? 43 22 ? 33 22 ? 38 22 ? 36 22 ? 35 22 ? 36 24 ! 36 24 ? 1 22 ? 2 23 ? 3 24 ? 4 24 ? 14 24 ? 19 24 ? 16 24 ? 17 24 ? 18 24 ? 18 28 ! 18 28 ? 1 23 ? 2 ...
result:
ok ok (1000 test cases)
Test #15:
score: 0
Accepted
time: 17ms
memory: 2064kb
input:
1000 45 20 21 19 11 17 20 20 4 1 45 16 17 15 11 14 13 12 13 8 1 45 10 9 11 8 7 6 7 11 1 45 15 14 11 11 12 11 10 1 1 45 11 10 11 15 12 11 15 1 45 16 17 15 11 10 9 9 8 8 1 45 19 20 18 7 6 5 4 5 1 1 45 5 6 4 11 5 2 3 3 1 44 19 20 18 11 13 13 12 1 1 45 12 13 13 1 1 44 20 21 19 11 14 12 13 1 1 45 15 14 1...
output:
? 1 23 ? 2 23 ? 45 23 ? 34 23 ? 40 23 ? 43 23 ? 44 23 ? 45 41 ! 45 5 ? 1 23 ? 2 23 ? 45 23 ? 34 23 ? 40 23 ? 43 23 ? 42 23 ? 41 23 ? 42 34 ! 42 12 ? 1 23 ? 2 23 ? 12 23 ? 7 23 ? 4 23 ? 5 23 ? 6 23 ? 5 28 ! 5 18 ? 1 23 ? 2 23 ? 12 23 ? 7 23 ? 4 23 ? 5 23 ? 6 23 ? 6 32 ! 6 32 ? 1 23 ? 2 23 ? 12 23 ? 7...
result:
ok ok (1000 test cases)
Test #16:
score: 0
Accepted
time: 0ms
memory: 2040kb
input:
1000 46 18 17 10 12 9 8 9 1 1 46 9 8 11 9 6 7 1 1 46 22 21 11 16 14 16 1 1 46 19 18 11 15 16 15 14 15 1 46 5 6 6 9 1 46 21 20 9 6 9 8 1 1 46 18 17 8 12 9 8 7 1 1 46 16 15 6 10 7 6 5 1 1 46 22 22 21 10 5 2 2 1 1 46 5 4 11 9 6 5 1 1 45 19 20 18 11 13 14 14 1 1 46 14 15 13 11 12 11 10 11 10 1 46 18 19 ...
output:
? 1 24 ? 2 24 ? 13 24 ? 7 24 ? 10 24 ? 11 24 ? 12 24 ? 11 31 ! 11 31 ? 1 24 ? 2 24 ? 13 24 ? 7 24 ? 4 24 ? 5 24 ? 4 29 ! 4 29 ? 1 24 ? 2 24 ? 13 24 ? 7 24 ? 10 24 ? 8 24 ? 7 39 ! 7 39 ? 1 24 ? 2 24 ? 13 24 ? 7 24 ? 4 24 ? 5 24 ? 6 24 ? 6 37 ! 6 11 ? 1 24 ? 2 24 ? 46 24 ? 1 28 ! 1 20 ? 1 24 ? 2 24 ? ...
result:
ok ok (1000 test cases)
Test #17:
score: 0
Accepted
time: 37ms
memory: 2100kb
input:
1000 1000000000 499999999 499999999 499999998 250000000 374999999 312500000 343750000 359375000 367187500 371093750 373046874 372070312 371582032 371826173 371948243 372009278 372039796 372055054 372047425 372043611 372045519 372046473 372046950 372047188 372047307 372047367 372047396 372047381 3720...
output:
? 1 500000001 ? 2 500000001 ? 1000000000 500000001 ? 750000001 500000001 ? 875000001 500000001 ? 812500001 500000001 ? 843750001 500000001 ? 859375001 500000001 ? 867187501 500000001 ? 871093751 500000001 ? 873046876 500000001 ? 872070314 500000001 ? 871582033 500000001 ? 871826174 500000001 ? 87194...
result:
ok ok (1000 test cases)
Test #18:
score: 0
Accepted
time: 18ms
memory: 2072kb
input:
1000 1000000000 499999969 499999968 249999969 124999969 62500000 93750000 109374969 101562469 97656219 95703125 96679688 97167938 96923798 96801728 96740724 96771211 96755952 96748354 96752138 96750231 96749277 96748831 96749070 96749158 96749099 96749100 96749110 96749102 96749098 96749098 96749097...
output:
? 1 500000001 ? 2 500000001 ? 250000001 500000001 ? 375000001 500000001 ? 437500001 500000001 ? 406250001 500000001 ? 390625001 500000001 ? 398437501 500000001 ? 402343751 500000001 ? 404296876 500000001 ? 403320313 500000001 ? 402832032 500000001 ? 403076172 500000001 ? 403198242 500000001 ? 403259...
result:
ok ok (1000 test cases)
Test #19:
score: 0
Accepted
time: 48ms
memory: 2104kb
input:
1000 1000000000 474148191 474148190 250000000 349148191 286648191 255398191 239773191 242187501 238281251 237820066 237304688 237331785 237087645 237182617 237121582 237091064 237075805 237080016 237076202 237074295 237074851 237074374 237074135 237074176 237074117 237074105 237074102 237074097 2370...
output:
? 1 500000001 ? 2 500000001 ? 250000001 500000001 ? 125000001 500000001 ? 187500001 500000001 ? 218750001 500000001 ? 234375001 500000001 ? 242187501 500000001 ? 238281251 500000001 ? 236328126 500000001 ? 237304688 500000001 ? 236816407 500000001 ? 237060547 500000001 ? 237182617 500000001 ? 237121...
result:
ok ok (1000 test cases)
Test #20:
score: 0
Accepted
time: 25ms
memory: 2064kb
input:
1000 1000000000 230485382 230485383 230485381 249999930 124999930 167985382 136735382 121110382 117187430 117204132 115251007 116210867 115722586 115478445 115356375 115295340 115264822 115249563 115243378 115245748 115243841 115242887 115242902 115242664 115242767 115242707 115242677 115242662 1152...
output:
? 1 500000001 ? 2 500000001 ? 1000000000 500000001 ? 750000001 500000001 ? 875000001 500000001 ? 937500001 500000001 ? 906250001 500000001 ? 890625001 500000001 ? 882812501 500000001 ? 886718751 500000001 ? 884765626 500000001 ? 883789064 500000001 ? 884277345 500000001 ? 884521486 500000001 ? 88464...
result:
ok ok (1000 test cases)
Test #21:
score: 0
Accepted
time: 27ms
memory: 2160kb
input:
1000 1000000000 288090905 288090906 288090904 250000000 329346805 266846805 256840905 251221805 249028405 247315555 247075280 246338992 246586999 246342859 246220789 246277956 246247438 246232179 246224550 246220735 246218882 246219781 246219304 246219066 246218947 246218887 246218857 246218868 2462...
output:
? 1 500000001 ? 2 500000001 ? 1000000000 500000001 ? 750000001 500000001 ? 875000001 500000001 ? 937500001 500000001 ? 968750001 500000001 ? 953125001 500000001 ? 960937501 500000001 ? 957031251 500000001 ? 958984376 500000001 ? 958007814 500000001 ? 958496095 500000001 ? 958251955 500000001 ? 95812...
result:
ok ok (1000 test cases)
Test #22:
score: -100
Runtime Error
input:
1000 999999999 499999998 499999997 249999999 374999998 312499998 281249999 296874998 289062498 285156248 283203123 282226561 281738280 281494139 281372070 281433104 281402587 281387328 281379700 281383514 281381607 281380654 281381131 281381370 281381488 281381430 281381459 281381445 281381453 28138...
output:
? 1 500000000 ? 2 500000000 ? 250000001 500000000 ? 125000001 500000000 ? 187500001 500000000 ? 218750001 500000000 ? 203125001 500000000 ? 210937501 500000000 ? 214843751 500000000 ? 216796876 500000000 ? 217773438 500000000 ? 218261719 500000000 ? 218505860 500000000 ? 218627930 500000000 ? 218566...