Submission #1981052


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);

    assert!(n < 5000 && m < 5000);
    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);
        }
        debug!(a);

        debug!(dv);
        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 2535 Byte
Status RE
Exec Time 20 ms
Memory 10492 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)
   | ^

Judge Result

Set Name Sample subtask All
Score / Max Score 0 / 0 0 / 500 0 / 500
Status
WA × 3
WA × 23
WA × 26
RE × 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 RE 10 ms 10492 KB
a2.txt RE 10 ms 10492 KB
a3.txt RE 10 ms 10492 KB
a4.txt RE 10 ms 10492 KB
a5.txt RE 10 ms 10492 KB
a6.txt RE 10 ms 10492 KB
b1.txt RE 10 ms 10492 KB
b2.txt RE 10 ms 10492 KB
c1.txt RE 10 ms 10492 KB
c2.txt RE 10 ms 10492 KB
d1.txt RE 10 ms 10492 KB
d2.txt RE 10 ms 10492 KB
d3.txt RE 10 ms 10492 KB
d4.txt RE 10 ms 10492 KB
e1.txt RE 10 ms 10492 KB
e2.txt RE 10 ms 10492 KB
e3.txt RE 10 ms 10492 KB
e4.txt RE 10 ms 10492 KB
f1.txt RE 10 ms 10492 KB
f2.txt RE 10 ms 10492 KB
sample1.txt WA 2 ms 4352 KB
sample2.txt WA 2 ms 4352 KB
sample3.txt WA 2 ms 4352 KB
subtask_a1.txt WA 17 ms 4604 KB
subtask_a2.txt WA 17 ms 4604 KB
subtask_a3.txt WA 16 ms 4604 KB
subtask_a4.txt WA 17 ms 4604 KB
subtask_a5.txt WA 16 ms 4604 KB
subtask_a6.txt WA 17 ms 4604 KB
subtask_b1.txt WA 18 ms 4732 KB
subtask_b2.txt WA 18 ms 4732 KB
subtask_c1.txt WA 19 ms 4732 KB
subtask_c2.txt WA 19 ms 4732 KB
subtask_d1.txt WA 19 ms 4732 KB
subtask_d2.txt WA 19 ms 4732 KB
subtask_d3.txt WA 20 ms 4732 KB
subtask_d4.txt WA 19 ms 4732 KB
subtask_e1.txt WA 19 ms 4732 KB
subtask_e2.txt WA 19 ms 4732 KB
subtask_e3.txt WA 19 ms 4732 KB
subtask_e4.txt WA 19 ms 4732 KB
subtask_f1.txt WA 9 ms 4476 KB
subtask_f2.txt WA 9 ms 4476 KB