Submission #1972251


Source Code Expand

// use std::ops::{Index, IndexMut};
// use std::cmp::{Ordering, min, max};
// use std::collections::{BinaryHeap, BTreeMap};
// use std::collections::btree_map::Entry::{Occupied, Vacant};
// use std::clone::Clone;

fn getline() -> String{
    let mut res = String::new();
    std::io::stdin().read_line(&mut res).ok();
    res
}

macro_rules! readl {
    ($t: ty) => {
        {
            let s = getline();
            s.trim().parse::<$t>().unwrap()
        }
    };
    ($( $t: ty),+ ) => {
        {
            let s = getline();
            let mut iter = s.trim().split(' ');
            ($(iter.next().unwrap().parse::<$t>().unwrap(),)*) 
        }
    };
}

macro_rules! readlvec {
    ($t: ty) => {
        {
            let s = getline();
            let iter = s.trim().split(' ');
            iter.map(|x| x.parse().unwrap()).collect::<Vec<$t>>()
        }
    }
}

macro_rules! mvec {
    ($v: expr, $s: expr) => {
        vec![$v; $s]
    };
    ($v: expr, $s: expr, $($t: expr),*) => {
        vec![mvec!($v, $($t),*); $s]
    };
}

macro_rules! debug {
    ($x: expr) => {
        println!("{}: {:?}", stringify!($x), $x)
    }
}

fn printiter<'a, T>(v: &'a T)
where
    &'a T: std::iter::IntoIterator, 
    <&'a T as std::iter::IntoIterator>::Item: std::fmt::Display {
    for (i,e) in v.into_iter().enumerate() {
        if i != 0 {
            print!(" ");
        }
        print!("{}", e);
    }
    println!("");
}

fn main() {
    let (n, m) = readl!(usize, usize);
    let mut a = readlvec!(usize);

    for _ in 0..m {
        let (x, y) = readl!(usize, usize);
        a[x-1] = y;
        let mut cnt = std::collections::BTreeMap::new();
        for &e in &a {
            let val = cnt.entry(e).or_insert(0);
            *val += 1;
        }

        let mut dv = Vec::new();
        let mut sum = 0;
        for (&k, &v) in &cnt {
            sum += v;
            dv.push(sum-k as i64);
        }

        let mut di = vec![0; dv.len()];
        di[0] = dv[0];
        for i in 0..dv.len()-1 {
            di[i+1] = dv[i+1]-dv[i];
        }

        // debug!(di);
        let mut msum = 0;
        let mut psum = 0;
        for &e in &di {
            if e < 0 {
                msum += -e;
            } else {
                psum += e;
            }
        }
        println!("{}", std::cmp::max(msum, psum));
    }
}

Submission Info

Submission Time
Task C - Snuke and Spells
User sntea
Language Rust (1.15.1)
Score 0
Code Size 2461 Byte
Status WA
Exec Time 2104 ms
Memory 16748 KB

Compile Error

warning: function is never used: `printiter`, #[warn(dead_code)] on by default
  --> ./Main.rs:54:1
   |
54 | fn printiter<'a, T>(v: &'a T)
   | ^

warning: unused variable: `n`, #[warn(unused_variables)] on by default
  --> ./Main.rs:68:10
   |
68 |     let (n, m) = readl!(usize, usize);
   |          ^

Judge Result

Set Name Sample subtask All
Score / Max Score 0 / 0 0 / 500 0 / 500
Status
AC × 3
AC × 5
WA × 18
AC × 8
WA × 18
TLE × 20
Set Name Test Cases
Sample sample1.txt, sample2.txt, sample3.txt
subtask sample1.txt, sample2.txt, sample3.txt, subtask_a1.txt, subtask_a2.txt, subtask_a3.txt, subtask_a4.txt, subtask_a5.txt, subtask_a6.txt, subtask_b1.txt, subtask_b2.txt, subtask_c1.txt, subtask_c2.txt, subtask_d1.txt, subtask_d2.txt, subtask_d3.txt, subtask_d4.txt, subtask_e1.txt, subtask_e2.txt, subtask_e3.txt, subtask_e4.txt, subtask_f1.txt, subtask_f2.txt
All sample1.txt, sample2.txt, sample3.txt, a1.txt, a2.txt, a3.txt, a4.txt, a5.txt, a6.txt, b1.txt, b2.txt, c1.txt, c2.txt, d1.txt, d2.txt, d3.txt, d4.txt, e1.txt, e2.txt, e3.txt, e4.txt, f1.txt, f2.txt, sample1.txt, sample2.txt, sample3.txt, subtask_a1.txt, subtask_a2.txt, subtask_a3.txt, subtask_a4.txt, subtask_a5.txt, subtask_a6.txt, subtask_b1.txt, subtask_b2.txt, subtask_c1.txt, subtask_c2.txt, subtask_d1.txt, subtask_d2.txt, subtask_d3.txt, subtask_d4.txt, subtask_e1.txt, subtask_e2.txt, subtask_e3.txt, subtask_e4.txt, subtask_f1.txt, subtask_f2.txt
Case Name Status Exec Time Memory
a1.txt TLE 2104 ms 12524 KB
a2.txt TLE 2104 ms 12524 KB
a3.txt TLE 2104 ms 12524 KB
a4.txt TLE 2104 ms 12524 KB
a5.txt TLE 2104 ms 12524 KB
a6.txt TLE 2104 ms 12524 KB
b1.txt TLE 2103 ms 16620 KB
b2.txt TLE 2104 ms 16620 KB
c1.txt TLE 2104 ms 14572 KB
c2.txt TLE 2104 ms 14572 KB
d1.txt TLE 2104 ms 16748 KB
d2.txt TLE 2104 ms 15312 KB
d3.txt TLE 2104 ms 14572 KB
d4.txt TLE 2103 ms 14572 KB
e1.txt TLE 2104 ms 14572 KB
e2.txt TLE 2104 ms 14572 KB
e3.txt TLE 2104 ms 14572 KB
e4.txt TLE 2104 ms 14572 KB
f1.txt TLE 2103 ms 10492 KB
f2.txt TLE 2103 ms 10492 KB
sample1.txt AC 2 ms 4352 KB
sample2.txt AC 2 ms 4352 KB
sample3.txt AC 2 ms 4352 KB
subtask_a1.txt WA 4 ms 4352 KB
subtask_a2.txt WA 4 ms 4352 KB
subtask_a3.txt WA 4 ms 4352 KB
subtask_a4.txt WA 4 ms 4352 KB
subtask_a5.txt WA 4 ms 4352 KB
subtask_a6.txt WA 4 ms 4352 KB
subtask_b1.txt WA 5 ms 4352 KB
subtask_b2.txt WA 5 ms 4352 KB
subtask_c1.txt WA 5 ms 4352 KB
subtask_c2.txt WA 5 ms 4352 KB
subtask_d1.txt WA 5 ms 4352 KB
subtask_d2.txt WA 5 ms 4352 KB
subtask_d3.txt WA 5 ms 4352 KB
subtask_d4.txt WA 5 ms 4352 KB
subtask_e1.txt WA 5 ms 4352 KB
subtask_e2.txt WA 5 ms 4352 KB
subtask_e3.txt WA 5 ms 4352 KB
subtask_e4.txt WA 5 ms 4352 KB
subtask_f1.txt AC 2 ms 4352 KB
subtask_f2.txt AC 3 ms 4352 KB