QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#853701 | #9727. Barkley III | ucup-team296# | AC ✓ | 1659ms | 179464kb | Rust | 40.7kb | 2025-01-11 18:25:50 | 2025-01-13 04:15:46 |
Judging History
answer
// https://contest.ucup.ac/contest/1893/problem/9727
use crate::algo_lib::collections::iter_ext::iter_copied::ItersCopied;
use crate::algo_lib::collections::segment_tree::{SegmentTree, SegmentTreeNode};
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 q = input.read_size();
let a = input.read_long_vec(n);
#[derive(Clone)]
struct Node {
and: i64,
delta: i64,
cand: Vec<i64>,
single: bool,
}
impl Node {
fn single(a: i64) -> Self {
Node {
and: a,
delta: i64::MAX,
cand: vec![i64::MAX],
single: true,
}
}
}
impl SegmentTreeNode for Node {
fn new(_left: usize, _right: usize) -> Self {
Self {
and: i64::MAX,
delta: i64::MAX,
cand: Vec::new(),
single: false,
}
}
fn join(&mut self, left_val: &Self, right_val: &Self) {
self.and = left_val.and & right_val.and;
self.cand.clear();
for i in left_val.cand.copy_iter() {
let may = i & right_val.and;
if may > self.and {
self.cand.push(may);
}
}
for i in right_val.cand.copy_iter() {
let may = i & left_val.and;
if may > self.and {
self.cand.push(may);
}
}
}
fn accumulate(&mut self, value: &Self) {
if value.delta == i64::MAX {
return;
}
self.and &= value.delta;
self.delta &= value.delta;
if !self.cand.is_empty() && !self.single {
let mut i = 0;
while i < self.cand.len() {
let n_val = self.cand[i] & value.delta;
if n_val > self.and {
self.cand[i] = n_val;
i += 1;
} else {
self.cand.swap_remove(i);
}
}
}
}
fn reset_delta(&mut self) {
self.delta = i64::MAX;
}
}
let mut st = SegmentTree::gen(n, |i| Node::single(a[i]));
for _ in 0..q {
let command = input.read_int();
match command {
1 => {
let l = input.read_size() - 1;
let r = input.read_size();
let x = input.read_long();
st.update(
l..r,
&Node {
delta: x,
and: 0,
cand: Vec::new(),
single: false,
},
);
}
2 => {
let s = input.read_size() - 1;
let x = input.read_long();
st.point_update(s, Node::single(x));
}
3 => {
let l = input.read_size() - 1;
let r = input.read_size();
let node: Node = st.query(l..r);
let ans = node.and.max(*node.cand.iter().max().unwrap_or(&0));
out.print_line(ans);
}
_ => unreachable!(),
}
}
}
pub static TEST_TYPE: TestType = TestType::Single;
pub static TASK_TYPE: TaskType = TaskType::Classic;
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 bounds {
use std::ops::RangeBounds;
pub fn clamp(range: impl RangeBounds<usize>, n: usize) -> (usize, usize) {
let start = match range.start_bound() {
std::ops::Bound::Included(&x) => x,
std::ops::Bound::Excluded(&x) => x + 1,
std::ops::Bound::Unbounded => 0,
};
let end = match range.end_bound() {
std::ops::Bound::Included(&x) => x + 1,
std::ops::Bound::Excluded(&x) => x,
std::ops::Bound::Unbounded => n,
};
(start, end.min(n))
}
}
pub mod iter_ext {
pub mod iter_copied {
use std::iter::{
Chain, Copied, Enumerate, Filter, Map, Rev, Skip, StepBy, Sum, Take, Zip,
};
pub trait ItersCopied<'a, T: 'a + Copy>: Sized + 'a
where
&'a Self: IntoIterator<Item = &'a T>,
{
fn copy_iter(&'a self) -> Copied<<&'a Self as IntoIterator>::IntoIter> {
self.into_iter().copied()
}
fn copy_enumerate(
&'a self,
) -> Enumerate<Copied<<&'a Self as IntoIterator>::IntoIter>> {
self.copy_iter().enumerate()
}
fn copy_rev(&'a self) -> Rev<Copied<<&'a Self as IntoIterator>::IntoIter>>
where
Copied<<&'a Self as IntoIterator>::IntoIter>: DoubleEndedIterator,
{
self.copy_iter().rev()
}
fn copy_skip(
&'a self,
n: usize,
) -> Skip<Copied<<&'a Self as IntoIterator>::IntoIter>> {
self.copy_iter().skip(n)
}
fn copy_take(
&'a self,
n: usize,
) -> Take<Copied<<&'a Self as IntoIterator>::IntoIter>> {
self.copy_iter().take(n)
}
fn copy_chain<V>(
&'a self,
chained: &'a V,
) -> Chain<
Copied<<&'a Self as IntoIterator>::IntoIter>,
Copied<<&'a V as IntoIterator>::IntoIter>,
>
where
&'a V: IntoIterator<Item = &'a T>,
{
self.copy_iter().chain(chained.into_iter().copied())
}
fn copy_zip<V>(
&'a self,
other: &'a V,
) -> Zip<
Copied<<&'a Self as IntoIterator>::IntoIter>,
Copied<<&'a V as IntoIterator>::IntoIter>,
>
where
&'a V: IntoIterator<Item = &'a T>,
{
self.copy_iter().zip(other.into_iter().copied())
}
fn copy_max(&'a self) -> T
where
T: Ord,
{
self.copy_iter().max().unwrap()
}
fn copy_max_by_key<B, F>(&'a self, f: F) -> T
where
F: FnMut(&T) -> B,
B: Ord,
{
self.copy_iter().max_by_key(f).unwrap()
}
fn copy_min(&'a self) -> T
where
T: Ord,
{
self.copy_iter().min().unwrap()
}
fn copy_min_by_key<B, F>(&'a self, f: F) -> T
where
F: FnMut(&T) -> B,
B: Ord,
{
self.copy_iter().min_by_key(f).unwrap()
}
fn copy_sum(&'a self) -> T
where
T: Sum<T>,
{
self.copy_iter().sum()
}
fn copy_map<F, U>(
&'a self,
f: F,
) -> Map<Copied<<&'a Self as IntoIterator>::IntoIter>, F>
where
F: FnMut(T) -> U,
{
self.copy_iter().map(f)
}
fn copy_all(&'a self, f: impl FnMut(T) -> bool) -> bool {
self.copy_iter().all(f)
}
fn copy_any(&'a self, f: impl FnMut(T) -> bool) -> bool {
self.copy_iter().any(f)
}
fn copy_step_by(
&'a self,
step: usize,
) -> StepBy<Copied<<&'a Self as IntoIterator>::IntoIter>> {
self.copy_iter().step_by(step)
}
fn copy_filter<F: FnMut(&T) -> bool>(
&'a self,
f: F,
) -> Filter<Copied<<&'a Self as IntoIterator>::IntoIter>, F> {
self.copy_iter().filter(f)
}
fn copy_fold<Acc, F>(&'a self, init: Acc, f: F) -> Acc
where
F: FnMut(Acc, T) -> Acc,
{
self.copy_iter().fold(init, f)
}
fn copy_reduce<F>(&'a self, f: F) -> Option<T>
where
F: FnMut(T, T) -> T,
{
self.copy_iter().reduce(f)
}
fn copy_position<P>(&'a self, predicate: P) -> Option<usize>
where
P: FnMut(T) -> bool,
{
self.copy_iter().position(predicate)
}
fn copy_find(&'a self, val: T) -> Option<usize>
where
T: PartialEq,
{
self.copy_iter().position(|x| x == val)
}
fn copy_count(&'a self, val: T) -> usize
where
T: PartialEq,
{
self.copy_iter().filter(|&x| x == val).count()
}
}
impl<'a, U: 'a, T: 'a + Copy> ItersCopied<'a, T> for U
where
&'a U: IntoIterator<Item = &'a T>,
{}
}
}
pub mod segment_tree {
use crate::algo_lib::collections::bounds::clamp;
use crate::algo_lib::misc::direction::Direction;
use crate::when;
use std::marker::PhantomData;
use std::ops::RangeBounds;
#[allow(unused_variables)]
pub trait SegmentTreeNode {
fn new(left: usize, right: usize) -> Self;
fn join(&mut self, left_val: &Self, right_val: &Self) {}
fn accumulate(&mut self, value: &Self) {}
fn reset_delta(&mut self) {}
}
pub trait Pushable<T>: SegmentTreeNode {
fn push(&mut self, delta: T);
}
impl<T: SegmentTreeNode> Pushable<&T> for T {
fn push(&mut self, delta: &T) {
self.accumulate(delta);
}
}
impl<T: SegmentTreeNode> Pushable<T> for T {
fn push(&mut self, delta: T) {
*self = delta;
}
}
pub trait QueryResult<Result, Args>: SegmentTreeNode {
fn empty_result(args: &Args) -> Result;
fn result(&self, args: &Args) -> Result;
fn join_results(
left_res: Result,
right_res: Result,
args: &Args,
left: usize,
mid: usize,
right: usize,
) -> Result;
}
impl<T: SegmentTreeNode + Clone> QueryResult<T, ()> for T {
fn empty_result(_: &()) -> T {
Self::new(0, 0)
}
fn result(&self, _: &()) -> T {
self.clone()
}
fn join_results(
left_res: T,
right_res: T,
_: &(),
left: usize,
mid: usize,
right: usize,
) -> T {
when! {
left == mid => right_res, right == mid => left_res, else => { let mut res =
Self::new(left, right); res.join(& left_res, & right_res); res },
}
}
}
#[derive(Clone)]
pub struct SegmentTree<Node> {
n: usize,
nodes: Vec<Node>,
}
impl<Node: SegmentTreeNode> SegmentTree<Node> {
pub fn new(n: usize) -> Self {
Self::gen(n, |left| Node::new(left, left + 1))
}
pub fn from_array(arr: Vec<Node>) -> Self {
let n = arr.len();
let mut iter = arr.into_iter();
Self::gen(n, |_| iter.next().unwrap())
}
pub fn gen<F>(n: usize, gen: F) -> Self
where
F: FnMut(usize) -> Node,
{
if n == 0 {
return Self {
n,
nodes: vec![Node::new(0, 0)],
};
}
let mut res = Self {
n,
nodes: Vec::with_capacity(2 * n - 1),
};
res.init(gen);
res
}
fn init<F>(&mut self, mut f: F)
where
F: FnMut(usize) -> Node,
{
self.init_impl(2 * self.n - 2, 0, self.n, &mut f);
}
fn init_impl<F>(&mut self, root: usize, left: usize, right: usize, f: &mut F)
where
F: FnMut(usize) -> Node,
{
if left + 1 == right {
self.nodes.push(f(left));
} else {
let mid = left + ((right - left) >> 1);
let left_child = root - 2 * (right - mid);
let right_child = root - 1;
self.init_impl(left_child, left, mid, f);
self.init_impl(right_child, mid, right, f);
let mut node = Node::new(left, right);
node.join(&self.nodes[left_child], &self.nodes[right_child]);
self.nodes.push(node);
}
}
pub fn point_query(&mut self, at: usize) -> &Node {
assert!(at < self.n);
self.do_point_query(self.nodes.len() - 1, 0, self.n, at)
}
fn do_point_query(
&mut self,
root: usize,
left: usize,
right: usize,
at: usize,
) -> &Node {
if left + 1 == right {
&self.nodes[root]
} else {
let mid = (left + right) >> 1;
self.push_down(root, mid, right);
let left_child = root - 2 * (right - mid);
let right_child = root - 1;
if at < mid {
self.do_point_query(left_child, left, mid, at)
} else {
self.do_point_query(right_child, mid, right, at)
}
}
}
pub fn point_update<T>(&mut self, at: usize, val: T)
where
Node: Pushable<T>,
{
assert!(at < self.n);
self.do_point_update(self.nodes.len() - 1, 0, self.n, at, val);
}
fn do_point_update<T>(
&mut self,
root: usize,
left: usize,
right: usize,
at: usize,
val: T,
)
where
Node: Pushable<T>,
{
if left + 1 == right {
self.nodes[root].push(val);
} else {
let mid = (left + right) >> 1;
self.push_down(root, mid, right);
let left_child = root - 2 * (right - mid);
let right_child = root - 1;
if at < mid {
self.do_point_update(left_child, left, mid, at, val);
} else {
self.do_point_update(right_child, mid, right, at, val);
}
self.join(root, mid, right);
}
}
pub fn point_through_update<'a, T>(&mut self, at: usize, val: &'a T)
where
Node: Pushable<&'a T>,
{
assert!(at < self.n);
self.do_point_through_update(self.nodes.len() - 1, 0, self.n, at, val);
}
fn do_point_through_update<'a, T>(
&mut self,
root: usize,
left: usize,
right: usize,
at: usize,
val: &'a T,
)
where
Node: Pushable<&'a T>,
{
self.nodes[root].push(val);
if left + 1 != right {
let mid = (left + right) >> 1;
self.push_down(root, mid, right);
let left_child = root - 2 * (right - mid);
let right_child = root - 1;
if at < mid {
self.do_point_through_update(left_child, left, mid, at, val);
} else {
self.do_point_through_update(right_child, mid, right, at, val);
}
}
}
pub fn point_operation<Args, Res>(
&mut self,
op: &mut dyn PointOperation<Node, Args, Res>,
args: Args,
) -> Res {
assert_ne!(self.n, 0);
self.do_point_operation(op, self.nodes.len() - 1, 0, self.n, args)
}
fn do_point_operation<Args, Res>(
&mut self,
op: &mut dyn PointOperation<Node, Args, Res>,
root: usize,
left: usize,
right: usize,
args: Args,
) -> Res {
if left + 1 == right {
op.adjust_leaf(&mut self.nodes[root], left, args)
} else {
let mid = (left + right) >> 1;
self.push_down(root, mid, right);
let left_child = root - 2 * (right - mid);
let right_child = root - 1;
let (l, r) = self.nodes.split_at_mut(root);
let (l, m) = l.split_at_mut(right_child);
let direction = op
.select_branch(
&mut r[0],
&mut l[left_child],
&mut m[0],
&args,
left,
mid,
right,
);
let res = match direction {
Direction::Left => {
self.do_point_operation(op, left_child, left, mid, args)
}
Direction::Right => {
self.do_point_operation(op, right_child, mid, right, args)
}
};
self.join(root, mid, right);
res
}
}
pub fn update<'a, T>(&mut self, range: impl RangeBounds<usize>, val: &'a T)
where
Node: Pushable<&'a T>,
{
let (from, to) = clamp(range, self.n);
self.do_update(self.nodes.len() - 1, 0, self.n, from, to, val)
}
pub fn do_update<'a, T>(
&mut self,
root: usize,
left: usize,
right: usize,
from: usize,
to: usize,
val: &'a T,
)
where
Node: Pushable<&'a T>,
{
when! {
left >= to || right <= from => {}, left >= from && right <= to => self
.nodes[root].push(val), else => { let mid = (left + right) >> 1; self
.push_down(root, mid, right); let left_child = root - 2 * (right - mid); let
right_child = root - 1; self.do_update(left_child, left, mid, from, to, val);
self.do_update(right_child, mid, right, from, to, val); self.join(root, mid,
right); },
}
}
pub fn operation<Args, Res>(
&mut self,
range: impl RangeBounds<usize>,
op: &mut dyn Operation<Node, Args, Res>,
args: &Args,
) -> Res {
let (from, to) = clamp(range, self.n);
self.do_operation(self.nodes.len() - 1, 0, self.n, from, to, op, args)
}
pub fn do_operation<Args, Res>(
&mut self,
root: usize,
left: usize,
right: usize,
from: usize,
to: usize,
op: &mut dyn Operation<Node, Args, Res>,
args: &Args,
) -> Res {
when! {
left >= to || right <= from => op.empty_result(left, right, args), left >=
from && right <= to => op.process_result(& mut self.nodes[root], args), else
=> { let mid = (left + right) >> 1; self.push_down(root, mid, right); let
left_child = root - 2 * (right - mid); let right_child = root - 1; let
left_result = self.do_operation(left_child, left, mid, from, to, op, args);
let right_result = self.do_operation(right_child, mid, right, from, to, op,
args); self.join(root, mid, right); op.join_results(left_result,
right_result, args) },
}
}
pub fn binary_search<Res>(
&mut self,
wh: impl FnMut(&Node, &Node) -> Direction,
calc: impl FnMut(&Node, usize) -> Res,
) -> Res {
self.do_binary_search(self.nodes.len() - 1, 0, self.n, wh, calc)
}
fn do_binary_search<Res>(
&mut self,
root: usize,
left: usize,
right: usize,
mut wh: impl FnMut(&Node, &Node) -> Direction,
mut calc: impl FnMut(&Node, usize) -> Res,
) -> Res {
if left + 1 == right {
calc(&self.nodes[root], left)
} else {
let mid = (left + right) >> 1;
self.push_down(root, mid, right);
let left_child = root - 2 * (right - mid);
let right_child = root - 1;
let direction = wh(&self.nodes[left_child], &self.nodes[right_child]);
match direction {
Direction::Left => self.do_binary_search(left_child, left, mid, wh, calc),
Direction::Right => {
self.do_binary_search(right_child, mid, right, wh, calc)
}
}
}
}
fn join(&mut self, root: usize, mid: usize, right: usize) {
let left_child = root - 2 * (right - mid);
let right_child = root - 1;
let (left_node, right_node) = self.nodes.split_at_mut(root);
right_node[0].join(&left_node[left_child], &left_node[right_child]);
}
fn do_push_down(&mut self, parent: usize, to: usize) {
let (left_nodes, right_nodes) = self.nodes.split_at_mut(parent);
left_nodes[to].accumulate(&right_nodes[0]);
}
fn push_down(&mut self, root: usize, mid: usize, right: usize) {
self.do_push_down(root, root - 2 * (right - mid));
self.do_push_down(root, root - 1);
self.nodes[root].reset_delta();
}
pub fn query<T>(&mut self, range: impl RangeBounds<usize>) -> T
where
Node: QueryResult<T, ()>,
{
let (from, to) = clamp(range, self.n);
if from >= to {
Node::empty_result(&())
} else {
self.do_query(self.nodes.len() - 1, 0, self.n, from, to, &())
}
}
pub fn query_with_args<T, Args>(
&mut self,
range: impl RangeBounds<usize>,
args: &Args,
) -> T
where
Node: QueryResult<T, Args>,
{
let (from, to) = clamp(range, self.n);
if from >= to {
Node::empty_result(args)
} else {
self.do_query(self.nodes.len() - 1, 0, self.n, from, to, args)
}
}
fn do_query<T, Args>(
&mut self,
root: usize,
left: usize,
right: usize,
from: usize,
to: usize,
args: &Args,
) -> T
where
Node: QueryResult<T, Args>,
{
if left >= from && right <= to {
self.nodes[root].result(args)
} else {
let mid = (left + right) >> 1;
self.push_down(root, mid, right);
let left_child = root - 2 * (right - mid);
let right_child = root - 1;
when! {
to <= mid => self.do_query(left_child, left, mid, from, to, args), from
>= mid => self.do_query(right_child, mid, right, from, to, args), else =>
{ let left_result = self.do_query(left_child, left, mid, from, to, args);
let right_result = self.do_query(right_child, mid, right, from, to,
args); Node::join_results(left_result, right_result, args, left, mid,
right) },
}
}
}
}
pub trait PointOperation<Node: SegmentTreeNode, Args, Res = Node> {
fn adjust_leaf(&mut self, leaf: &mut Node, at: usize, args: Args) -> Res;
fn select_branch(
&mut self,
root: &mut Node,
left_child: &mut Node,
right_child: &mut Node,
args: &Args,
left: usize,
mid: usize,
right: usize,
) -> Direction;
}
pub struct PointOperationClosure<'s, Node: SegmentTreeNode, Args, Res = Node> {
adjust_leaf: Box<dyn FnMut(&mut Node, usize, Args) -> Res + 's>,
select_branch: Box<
dyn FnMut(
&mut Node,
&mut Node,
&mut Node,
&Args,
usize,
usize,
usize,
) -> Direction + 's,
>,
phantom_node: PhantomData<Node>,
phantom_args: PhantomData<Args>,
phantom_res: PhantomData<Res>,
}
impl<'s, Node: SegmentTreeNode, Args, Res> PointOperationClosure<'s, Node, Args, Res> {
pub fn new<F1, F2>(adjust_leaf: F1, select_branch: F2) -> Self
where
F1: FnMut(&mut Node, usize, Args) -> Res + 's,
F2: FnMut(
&mut Node,
&mut Node,
&mut Node,
&Args,
usize,
usize,
usize,
) -> Direction + 's,
{
Self {
adjust_leaf: Box::new(adjust_leaf),
select_branch: Box::new(select_branch),
phantom_node: Default::default(),
phantom_args: Default::default(),
phantom_res: Default::default(),
}
}
}
impl<'s, Node: SegmentTreeNode, Args, Res> PointOperation<Node, Args, Res>
for PointOperationClosure<'s, Node, Args, Res> {
fn adjust_leaf(&mut self, leaf: &mut Node, at: usize, args: Args) -> Res {
(self.adjust_leaf)(leaf, at, args)
}
fn select_branch(
&mut self,
root: &mut Node,
left_child: &mut Node,
right_child: &mut Node,
args: &Args,
left: usize,
mid: usize,
right: usize,
) -> Direction {
(self.select_branch)(root, left_child, right_child, args, left, mid, right)
}
}
pub trait Operation<Node: SegmentTreeNode, Args, Res = Node> {
fn process_result(&mut self, node: &mut Node, args: &Args) -> Res;
fn join_results(&mut self, left_res: Res, right_res: Res, args: &Args) -> Res;
fn empty_result(&mut self, left: usize, right: usize, args: &Args) -> Res;
}
pub struct OperationClosure<'s, Node: SegmentTreeNode, Args, Res = Node> {
process_result: Box<dyn FnMut(&mut Node, &Args) -> Res + 's>,
join_results: Box<dyn FnMut(Res, Res, &Args) -> Res + 's>,
empty_result: Box<dyn FnMut(usize, usize, &Args) -> Res + 's>,
phantom_node: PhantomData<Node>,
phantom_args: PhantomData<Args>,
phantom_res: PhantomData<Res>,
}
impl<'s, Node: SegmentTreeNode, Args, Res> OperationClosure<'s, Node, Args, Res> {
pub fn new<F1, F2, F3>(
process_result: F1,
join_results: F2,
empty_result: F3,
) -> Self
where
F1: FnMut(&mut Node, &Args) -> Res + 's,
F2: FnMut(Res, Res, &Args) -> Res + 's,
F3: FnMut(usize, usize, &Args) -> Res + 's,
{
Self {
process_result: Box::new(process_result),
join_results: Box::new(join_results),
empty_result: Box::new(empty_result),
phantom_node: Default::default(),
phantom_args: Default::default(),
phantom_res: Default::default(),
}
}
}
impl<'s, Node: SegmentTreeNode, Args, Res> Operation<Node, Args, Res>
for OperationClosure<'s, Node, Args, Res> {
fn process_result(&mut self, node: &mut Node, args: &Args) -> Res {
(self.process_result)(node, args)
}
fn join_results(&mut self, left_res: Res, right_res: Res, args: &Args) -> Res {
(self.join_results)(left_res, right_res, args)
}
fn empty_result(&mut self, left: usize, right: usize, args: &Args) -> Res {
(self.empty_result)(left, right, args)
}
}
}
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 misc {
pub mod direction {
#[derive(Copy, Clone)]
pub enum Direction {
Left,
Right,
}
}
pub mod test_type {
pub enum TestType {
Single,
MultiNumber,
MultiEof,
}
pub enum TaskType {
Classic,
Interactive,
}
}
pub mod when {
#[macro_export]
macro_rules! when {
{$($cond:expr => $then:expr,)*} => {
match () { $(_ if $cond => $then,)* _ => unreachable!(), }
};
{$($cond:expr => $then:expr,)* else $(=>)? $else:expr $(,)?} => {
match () { $(_ if $cond => $then,)* _ => $else, }
};
}
}
}
}
这程序好像有点Bug,我给组数据试试?
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 2232kb
input:
5 9 7 7 7 6 7 3 1 5 2 1 3 3 1 5 3 1 3 1 1 2 3 3 1 3 2 2 8 3 1 3 3 1 2
output:
7 6 7 3 3 8
result:
ok 6 lines
Test #2:
score: 0
Accepted
time: 0ms
memory: 2040kb
input:
10 10 6760061359215711796 1568091718842717482 1568091718842717482 1568091718842717482 5232472783634052627 8795942500783873690 1568091718842717482 1568091718842717482 1568091718842717482 1568091718842717482 1 3 5 7587422031989082829 3 6 10 1 7 8 5197616143400216932 2 4 2518604563805514908 2 2 4533959...
output:
1568091718842717482 35184908959744 176025477579040 8795942500783873690
result:
ok 4 lines
Test #3:
score: 0
Accepted
time: 0ms
memory: 2168kb
input:
100 100 4263579105072360993 4263579105072360993 4263579105072360993 4263579105072360993 4263579105072360993 4263579105072360993 4263579105072360993 4263579105072360993 4263579105072360993 625967318191814868 4263579105072360993 4263579105072360993 4263579105072360993 4263579105072360993 4263579105072...
output:
576531121047601152 1 576460752303423488 4263579105072360993 1306043896232411137 4263579105072360993 576531121047601152 633397148123136 0 1153488865559840256 1152922054496880128 1730020640668059136 3533641810948498945 67108864 1730020640668059136 0 633397148123136 1729382296723653632 0 17300206406680...
result:
ok 78 lines
Test #4:
score: 0
Accepted
time: 1ms
memory: 2388kb
input:
1000 1000 3368486440884437410 3368486440884437410 3368486440884437410 3368486440884437410 3368486440884437410 3368486440884437410 3368486440884437410 3368486440884437410 3368486440884437410 3368486440884437410 3368486440884437410 3639580211161047627 3368486440884437410 3368486440884437410 3368486440...
output:
3368486440884437410 3368486440884437410 3368486440884437410 2251799981457408 0 0 3368486440884437410 0 3326828075601101216 592509842556584322 0 0 0 0 0 0 37154696925806592 0 0 0 3368486440884437410 0 0 3368486440884437410 0 578998425140330496 0 0 134217728 0 3368486440884437410 2306405959167115264 0...
result:
ok 732 lines
Test #5:
score: 0
Accepted
time: 73ms
memory: 17276kb
input:
100000 100000 4364025563773184234 7745126251050571359 5111681002836044963 7745126251050571359 7745126251050571359 7745126251050571359 7745126251050571359 7745126251050571359 7745126251050571359 7745126251050571359 7745126251050571359 7745126251050571359 7222555899134537718 7745126251050571359 686495...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4613942216556019776 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 75105 lines
Test #6:
score: 0
Accepted
time: 1139ms
memory: 142736kb
input:
1000000 1000000 5485203341817263234 5485203341817263234 5485203341817263234 5485203341817263234 5485203341817263234 5485203341817263234 5485203341817263234 5485203341817263234 5485203341817263234 5485203341817263234 5485203341817263234 5485203341817263234 5485203341817263234 5485203341817263234 5485...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8796093022208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 576460754450907136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...
result:
ok 749866 lines
Test #7:
score: 0
Accepted
time: 1105ms
memory: 154932kb
input:
1000000 1000000 6478641409915854014 6478641409915854014 6478641409915854014 6478641409915854014 6478641409915854014 6478641409915854014 6478641409915854014 6478641409915854014 6478641409915854014 6478641409915854014 6478641409915854014 815888006180307319 6478641409915854014 6478641409915854014 37784...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 749822 lines
Test #8:
score: 0
Accepted
time: 1112ms
memory: 175068kb
input:
1000000 1000000 8129239286682760854 3981028880940170401 2535635990161413927 8316479514668652599 5147316903112543089 4630570098268037408 8505388156841465368 2203883581249948495 581610100009626881 5079268521394939 1476469952815397946 4914699404295060276 4440084747042452220 2702894635900623841 90540586...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 749812 lines
Test #9:
score: 0
Accepted
time: 1156ms
memory: 172384kb
input:
1000000 1000000 7320373167365396487 7320373167365396487 937526916087788458 7320373167365396487 7320373167365396487 7320373167365396487 6758767667984378025 7320373167365396487 7320373167365396487 7320373167365396487 5687396935769483606 1467370155631201061 3556475128226340387 2212274051825085385 77978...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 748638 lines
Test #10:
score: 0
Accepted
time: 0ms
memory: 2128kb
input:
2 2 3937866409909043622 2873041425983999763 2 2 3645842096674595914 2 1 5018240021376355677
output:
result:
ok 0 lines
Test #11:
score: 0
Accepted
time: 1087ms
memory: 139940kb
input:
1000000 1000000 4900813446099088166 4900813446099088166 4900813446099088166 4900813446099088166 4900813446099088166 4900813446099088166 4900813446099088166 4900813446099088166 4900813446099088166 4900813446099088166 4900813446099088166 4900813446099088166 4900813446099088166 4900813446099088166 4900...
output:
4900813446099088166 4899930503817200418 4900813446099088166 4899916948900413730 4899916948900413730 4899930503817200418 4899930503817200418 4899930503817200418 4899930503817200418 4900813446099088166 288230380446679040 288230380446679040 4899930503817200418 4899930503817200418 0 768 768 288230724044...
result:
ok 748697 lines
Test #12:
score: 0
Accepted
time: 1071ms
memory: 139652kb
input:
1000000 1000000 4896682234503638342 4896682234503638342 4896682234503638342 4896682234503638342 4896682234503638342 4896682234503638342 4896682234503638342 4896682234503638342 4896682234503638342 4896682234503638342 4896682234503638342 4896682234503638342 4896682234503638342 4896682234503638342 4896...
output:
4896682234503638342 4896682234503638342 4896682234503638342 82333682484117506 4896682234503638342 82333682484117506 9150188513918978 9150188513918978 4896682234503638342 4896682234503638342 9150188513918978 4896682234503638342 9150188513918978 4896682234503638342 4896682234503638342 9150188513918978...
result:
ok 748737 lines
Test #13:
score: 0
Accepted
time: 1071ms
memory: 139916kb
input:
1000000 1000000 5828086749355423563 5828086749355423563 5828086749355423563 5828086749355423563 5828086749355423563 5828086749355423563 5828086749355423563 5828086749355423563 5828086749355423563 5828086749355423563 5828086749355423563 5828086749355423563 5828086749355423563 5828086749355423563 5828...
output:
5828086749355423563 8192 0 0 1152921504793493761 0 0 0 134217728 5828086749355423563 4647719230811407937 0 0 0 0 4647719230811407937 4611686018427396096 0 0 4415226380288 0 0 0 0 4665729214006427657 0 0 4665729213955833856 0 4665733612138661120 0 0 4611686018429485056 4666015104295802624 0 0 0 0 0 4...
result:
ok 749804 lines
Test #14:
score: 0
Accepted
time: 1084ms
memory: 139720kb
input:
1000000 1000000 1970703737173261435 1970703737173261435 1970703737173261435 1970703737173261435 1970703737173261435 1970703737173261435 1970703737173261435 1970703737173261435 1970703737173261435 1970703737173261435 1970703737173261435 1970703737173261435 1970703737173261435 1970703737173261435 1970...
output:
18014398510006272 1970703737173261435 1970703737173261435 18014398510006272 1170935903116331008 1170935903116331008 1242993501449496576 72057598332903424 72127962782629888 72057594037927936 72057598333165568 70405251923968 0 0 0 0 0 0 0 673367418922088530 72127962782892032 18014398509481984 0 704052...
result:
ok 749806 lines
Test #15:
score: 0
Accepted
time: 1072ms
memory: 139716kb
input:
1000000 1000000 1268538845505400998 1268538845505400998 1268538845505400998 1268538845505400998 1268538845505400998 1268538845505400998 1268538845505400998 1268538845505400998 1268538845505400998 1268538845505400998 1268538845505400998 1268538845505400998 1268538845505400998 1268538845505400998 1268...
output:
1191203210145169410 0 0 0 0 0 0 0 8589934592 705069918064678 704786953404416 0 0 1268538845505400998 1268538845505400998 4503633987117056 8589934592 0 633318697730048 2251804108783616 0 0 0 0 4503599627374592 0 0 0 0 704791248371712 1099511627776 0 0 0 1268538845505400998 0 0 633318731153408 1268538...
result:
ok 749818 lines
Test #16:
score: 0
Accepted
time: 1105ms
memory: 139928kb
input:
1000000 1000000 8796374617094329340 8796374617094329340 8796374617094329340 8796374617094329340 8796374617094329340 8796374617094329340 8796374617094329340 8796374617094329340 8796374617094329340 8796374617094329340 8796374617094329340 8796374617094329340 8796374617094329340 8796374617094329340 8796...
output:
0 0 0 0 0 0 0 0 0 0 4612249037637189632 0 0 0 0 0 0 144115189706063880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8219350795484238412 0 0 0 536870912 0 0 0 0 0 0 8214847195317895748 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144115188092633600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 749921 lines
Test #17:
score: 0
Accepted
time: 1066ms
memory: 140280kb
input:
1000000 1000000 1639525139600828208 1639525139600828208 1639525139600828208 1639525139600828208 1639525139600828208 1639525139600828208 1639525139600828208 1639525139600828208 1639525139600828208 1639525139600828208 1639525139600828208 1639525139600828208 1639525139600828208 1639525139600828208 1639...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 324259173170675712 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 288231492843216896 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144115188075864064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...
result:
ok 749798 lines
Test #18:
score: 0
Accepted
time: 1582ms
memory: 166832kb
input:
1000000 1000000 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451...
output:
504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451 292733989738811392 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866...
result:
ok 332866 lines
Test #19:
score: 0
Accepted
time: 1128ms
memory: 134996kb
input:
1000000 1000000 2984855923226151208 2984855923226151208 2984855923226151208 2984855923226151208 2984855923226151208 2984855923226151208 2984855923226151208 2984855923226151208 2984855923226151208 2984855923226151208 2984855923226151208 2984855923226151208 2984855923226151208 2984855923226151208 2984...
output:
2984855923226151208
result:
ok single line: '2984855923226151208'
Test #20:
score: 0
Accepted
time: 987ms
memory: 178980kb
input:
1000000 1000000 2067242734448201478 2067242734448201478 2067242734448201478 2067242734448201478 2067242734448201478 2067242734448201478 2067242734448201478 2067242734448201478 2067242734448201478 2067242734448201478 2067242734448201478 2067242734448201478 2067242734448201478 2067242734448201478 2067...
output:
0
result:
ok single line: '0'
Test #21:
score: 0
Accepted
time: 1021ms
memory: 135028kb
input:
1000000 1000000 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549...
output:
4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 ...
result:
ok 1000000 lines
Test #22:
score: 0
Accepted
time: 1640ms
memory: 153868kb
input:
1000000 1000000 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275...
output:
508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316...
result:
ok 749894 lines
Test #23:
score: 0
Accepted
time: 1577ms
memory: 166840kb
input:
1000000 1000000 6184554809109693663 6184554809109693663 6184554809109693663 6184554809109693663 6184554809109693663 6184554809109693663 6184554809109693663 6184554809109693663 6184554809109693663 6184554809109693663 6184554809109693663 6184554809109693663 6184554809109693663 6184554809109693663 6184...
output:
72057594037927936 108438303632146450 5819200270512603152 396527890631622850 4683745811488571528 6184554809109693663 0 72057594037927936 108438303632146450 6184554809109693663 6184554809109693663 72059793061183624 36099165763141632 4683745811488571528 6184554809109693663 6184554809109693663 720575940...
result:
ok 332716 lines
Test #24:
score: 0
Accepted
time: 1182ms
memory: 134728kb
input:
1000000 1000000 8665112799136011124 8665112799136011124 8665112799136011124 8665112799136011124 8665112799136011124 8665112799136011124 8665112799136011124 8665112799136011124 8665112799136011124 8665112799136011124 8665112799136011124 8665112799136011124 8665112799136011124 8665112799136011124 8665...
output:
8665112799136011124
result:
ok single line: '8665112799136011124'
Test #25:
score: 0
Accepted
time: 1012ms
memory: 179464kb
input:
1000000 1000000 7747499610358061394 7747499610358061394 7747499610358061394 7747499610358061394 7747499610358061394 7747499610358061394 7747499610358061394 7747499610358061394 7747499610358061394 7747499610358061394 7747499610358061394 7747499610358061394 7747499610358061394 7747499610358061394 7747...
output:
0
result:
ok single line: '0'
Test #26:
score: 0
Accepted
time: 1128ms
memory: 134808kb
input:
1000000 1000000 1006338049885769895 1006338049885769895 1006338049885769895 1006338049885769895 1006338049885769895 1006338049885769895 1006338049885769895 1006338049885769895 1006338049885769895 1006338049885769895 1006338049885769895 1006338049885769895 1006338049885769895 1006338049885769895 1006...
output:
1006338049885769895 1006338049885769895 865598272308383749 1006338049885769895 586620239750365190 1006338049885769895 1006338049885769895 577586652210266114 613615520096321538 1006338049885769895 1006338049885769895 1006338049885769895 1006338049885769895 1006338049885769895 1125899906842624 1006338...
result:
ok 1000000 lines
Test #27:
score: 0
Accepted
time: 1659ms
memory: 154168kb
input:
1000000 1000000 6188686016410176191 6188686016410176191 6188686016410176191 6188686016410176191 6188686016410176191 6188686016410176191 6188686016410176191 6188686016410176191 6188686016410176191 6188686016410176191 6188686016410176191 6188686016410176191 6188686016410176191 6188686016410176191 6188...
output:
6188686016410176191 0 0 6188686016410176191 4612248968380942372 6188686016410176191 6188686016410176191 6188686016410176191 6188686016410176191 1234022721638778909 0 6188686016410176191 0 6188686016410176191 6188686016410176191 6188686016410176191 6188686016410176191 4738491614543890493 540431955284...
result:
ok 748681 lines
Test #28:
score: 0
Accepted
time: 1575ms
memory: 166976kb
input:
1000000 1000000 7177992877208284442 7177992877208284442 7177992877208284442 7177992877208284442 7177992877208284442 7177992877208284442 7177992877208284442 7177992877208284442 7177992877208284442 7177992877208284442 7177992877208284442 7177992877208284442 7177992877208284442 7177992877208284442 7177...
output:
7177992877208284442 0 0 0 0 0 0 0 2216739995648 2451084097464860672 7177992877208284442 2309291391953440018 0 0 67108864 0 0 0 0 0 0 7177992877208284442 0 0 0 0 0 0 0 7177992877208284442 0 0 7177992877208284442 0 0 0 536870912 0 0 0 0 0 0 0 7177992877208284442 0 7177992877208284442 0 0 0 0 0 0 0 0 0...
result:
ok 333960 lines
Test #29:
score: 0
Accepted
time: 1295ms
memory: 134956kb
input:
1000000 1000000 435178830379826095 435178830379826095 435178830379826095 435178830379826095 435178830379826095 435178830379826095 435178830379826095 435178830379826095 435178830379826095 435178830379826095 435178830379826095 435178830379826095 435178830379826095 435178830379826095 435178830379826095...
output:
0
result:
ok single line: '0'
Test #30:
score: 0
Accepted
time: 991ms
memory: 179020kb
input:
1000000 1000000 8740937678456652174 8740937678456652174 8740937678456652174 8740937678456652174 8740937678456652174 8740937678456652174 8740937678456652174 8740937678456652174 8740937678456652174 8740937678456652174 8740937678456652174 8740937678456652174 8740937678456652174 8740937678456652174 8740...
output:
0
result:
ok single line: '0'
Test #31:
score: 0
Accepted
time: 1195ms
memory: 134892kb
input:
1000000 1000000 1999776117984360675 1999776117984360675 1999776117984360675 1999776117984360675 1999776117984360675 1999776117984360675 1999776117984360675 1999776117984360675 1999776117984360675 1999776117984360675 1999776117984360675 1999776117984360675 1999776117984360675 1999776117984360675 1999...
output:
0 0 36028797018963968 576601489892724738 0 0 0 36028797018963968 0 0 8388608 0 0 0 144115188075855872 1999776117984360675 0 0 0 720575940450582530 0 0 0 1783427379079682112 0 0 1999776117984360675 67108864 0 0 1999776117984360675 0 0 0 0 0 0 180145668722001922 0 0 1999776117984360675 0 0 57646075237...
result:
ok 1000000 lines
Test #32:
score: 0
Accepted
time: 1637ms
memory: 154396kb
input:
1000000 1000000 7182124084508766970 7182124084508766970 7182124084508766970 7182124084508766970 7182124084508766970 7182124084508766970 7182124084508766970 7182124084508766970 7182124084508766970 7182124084508766970 7182124084508766970 7182124084508766970 7182124084508766970 7182124084508766970 7182...
output:
0 0 1140850688 34359738368 0 7182124084508766970 0 7182124084508766970 0 2558050962170446072 0 0 108088316276768776 0 0 0 72057594037928000 0 7182124084508766970 7182124084508766970 0 0 0 144115462970540032 0 0 4613942220590940160 0 4611690416473899008 7182124084508766970 0 536875008 0 0 0 461168601...
result:
ok 748671 lines
Test #33:
score: 0
Accepted
time: 1568ms
memory: 167244kb
input:
1000000 1000000 1942977031860337769 1942977031860337769 1942977031860337769 1942977031860337769 1942977031860337769 1942977031860337769 1942977031860337769 1942977031860337769 1942977031860337769 1942977031860337769 1942977031860337769 1942977031860337769 1942977031860337769 1942977031860337769 1942...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1942...
result:
ok 333672 lines
Test #34:
score: 0
Accepted
time: 1603ms
memory: 137788kb
input:
1000000 1000000 4423535017591687934 4423535017591687934 4423535017591687934 4423535017591687934 4423535017591687934 4423535017591687934 4423535017591687934 4423535017591687934 4423535017591687934 4423535017591687934 4423535017591687934 4423535017591687934 4423535017591687934 4423535017591687934 4423...
output:
0
result:
ok single line: '0'
Test #35:
score: 0
Accepted
time: 1005ms
memory: 178680kb
input:
1000000 1000000 3505921828813738205 3505921828813738205 3505921828813738205 3505921828813738205 3505921828813738205 3505921828813738205 3505921828813738205 3505921828813738205 3505921828813738205 3505921828813738205 3505921828813738205 3505921828813738205 3505921828813738205 3505921828813738205 3505...
output:
0
result:
ok single line: '0'
Test #36:
score: 0
Accepted
time: 1291ms
memory: 137860kb
input:
1000000 1000000 5988132305196222514 5988132305196222514 5988132305196222514 5988132305196222514 5988132305196222514 5988132305196222514 5988132305196222514 5988132305196222514 5988132305196222514 5988132305196222514 5988132305196222514 5988132305196222514 5988132305196222514 5988132305196222514 5988...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4194304 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 1000000 lines
Test #37:
score: 0
Accepted
time: 1617ms
memory: 154660kb
input:
1000000 1000000 1947108239160820297 1947108239160820297 1947108239160820297 1947108239160820297 1947108239160820297 1947108239160820297 1947108239160820297 1947108239160820297 1947108239160820297 1947108239160820297 1947108239160820297 1947108239160820297 1947108239160820297 1947108239160820297 1947...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72057594037927936 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 749802 lines
Test #38:
score: 0
Accepted
time: 1554ms
memory: 169436kb
input:
1000000 1000000 7317107235147368050 7317107235147368050 7317107235147368050 4600578496744841855 7317107235147368050 7317107235147368050 7317107235147368050 7317107235147368050 7317107235147368050 7317107235147368050 7317107235147368050 7317107235147368050 7317107235147368050 7317107235147368050 7317...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 333436 lines
Test #39:
score: 0
Accepted
time: 1642ms
memory: 151096kb
input:
1000000 1000000 574293188318909704 4944707468177635433 574293188318909704 574293188318909704 574293188318909704 574293188318909704 574293188318909704 574293188318909704 574293188318909704 574293188318909704 574293188318909704 574293188318909704 574293188318909704 574293188318909704 57429318831890970...
output:
0
result:
ok single line: '0'
Test #40:
score: 0
Accepted
time: 1010ms
memory: 179032kb
input:
1000000 1000000 8880052036395735782 3370270453805280236 8880052036395735782 8880052036395735782 8880052036395735782 1658134037767948557 8880052036395735782 8880052036395735782 8880052036395735782 8880052036395735782 8880052036395735782 8880052036395735782 8880052036395735782 8880052036395735782 8880...
output:
0
result:
ok single line: '0'
Test #41:
score: 0
Accepted
time: 1331ms
memory: 151068kb
input:
1000000 1000000 2138890471628476987 2138890471628476987 2138890471628476987 2138890471628476987 2701792061270764955 2138890471628476987 2138890471628476987 2138890471628476987 2138890471628476987 2138890471628476987 2138890471628476987 2138890471628476987 2138890471628476987 2138890471628476987 2138...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 1000000 lines
Test #42:
score: 0
Accepted
time: 1642ms
memory: 160992kb
input:
1000000 1000000 7321238446742817875 7321238446742817875 7321238446742817875 7321238446742817875 7321238446742817875 7321238446742817875 7321238446742817875 7321238446742817875 7321238446742817875 7820924246120346674 7321238446742817875 7321238446742817875 5438336241901164245 7321238446742817875 7321...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 749867 lines
Test #43:
score: 0
Accepted
time: 1318ms
memory: 175744kb
input:
1000000 1000000 3054479303901583481 8542634789265589102 8763189460173490994 347954343321867304 5222257548302493370 712096612126303857 2867956275070561479 6768117976397374494 974347337482414457 4846917705740109840 1173714437444948014 7689180196230725026 1870065106406661228 5713656305935716013 8838370...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 332080 lines
Test #44:
score: 0
Accepted
time: 1446ms
memory: 175272kb
input:
1000000 1000000 3876614458574008376 4741853542709157004 4113796830973601145 2046436256465908709 3055342624729765891 1192232949927567332 3617135185251329161 4244429430125165045 9008946355953563209 7538283737575629071 3124585565884909456 7802900471543569769 7325524157133848371 8097641637928408187 8181...
output:
0
result:
ok single line: '0'
Test #45:
score: 0
Accepted
time: 892ms
memory: 177140kb
input:
1000000 1000000 2204224844440371035 4706225475966106828 7590764880989545789 968258618815192087 4871801479478214208 8334168953004088852 5815686574630432208 9044047138872679740 352877046176358731 7058547126911457861 8927495754168168077 4858322205252282008 4007046136625129447 7641555299477879625 795068...
output:
0
result:
ok single line: '0'
Test #46:
score: 0
Accepted
time: 1260ms
memory: 175196kb
input:
1000000 1000000 8572456815015360828 9065175774525643199 8907194210947259255 5840576792698844521 4768429288789849247 1083881102283466146 5337575929083902441 4896724651392637579 1795095553483724716 2215948131189145110 4899679426885149279 8573239497676519612 5378303725044348237 8120677465899761982 1446...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 1000000 lines
Test #47:
score: 0
Accepted
time: 1374ms
memory: 175460kb
input:
1000000 1000000 6350775739666562514 2830574490951496717 5055429467350151491 2114122379229172904 5612631682420972581 4063544390268497051 3854023556991475654 6003873803436605896 3086602084692080112 2112115579992567114 6444273330101427721 566510939575940430 7661840119654565299 1795465237863212561 48804...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 749892 lines
Extra Test:
score: 0
Extra Test Passed