Submission #5906536


Source Code Expand

#[allow(unused_macros)]
macro_rules ! input { ( source = $ s : expr , $ ( $ r : tt ) * ) => { let mut iter = $ s . split_whitespace ( ) ; let mut next = || { iter . next ( ) . unwrap ( ) } ; input_inner ! { next , $ ( $ r ) * } } ; ( $ ( $ r : tt ) * ) => { let stdin = std :: io :: stdin ( ) ; let mut bytes = std :: io :: Read :: bytes ( std :: io :: BufReader :: new ( stdin . lock ( ) ) ) ; let mut next = move || -> String { bytes . by_ref ( ) . map ( | r | r . unwrap ( ) as char ) . skip_while ( | c | c . is_whitespace ( ) ) . take_while ( | c |! c . is_whitespace ( ) ) . collect ( ) } ; input_inner ! { next , $ ( $ r ) * } } ; }
#[allow(unused_macros)]
macro_rules ! input_inner { ( $ next : expr ) => { } ; ( $ next : expr , ) => { } ; ( $ next : expr , $ var : ident : $ t : tt $ ( $ r : tt ) * ) => { let $ var = read_value ! ( $ next , $ t ) ; input_inner ! { $ next $ ( $ r ) * } } ; }
#[allow(unused_macros)]
macro_rules ! read_value { ( $ next : expr , ( $ ( $ t : tt ) ,* ) ) => { ( $ ( read_value ! ( $ next , $ t ) ) ,* ) } ; ( $ next : expr , [ $ t : tt ; $ len : expr ] ) => { ( 0 ..$ len ) . map ( | _ | read_value ! ( $ next , $ t ) ) . collect ::< Vec < _ >> ( ) } ; ( $ next : expr , chars ) => { read_value ! ( $ next , String ) . chars ( ) . collect ::< Vec < char >> ( ) } ; ( $ next : expr , usize1 ) => { read_value ! ( $ next , usize ) - 1 } ; ( $ next : expr , $ t : ty ) => { $ next ( ) . parse ::<$ t > ( ) . expect ( "Parse error" ) } ; }

fn main() {
    input! {
        n: usize,
        ab: [(usize, usize);n]
    }
    let mut arr = vec![0i64;1_000_001];
    for i in 0..n {
        let (a, b) = ab[i];
        arr[a] += 1;
        if b+1 < arr.len() {
            arr[b+1] -= 1;
        }
    }
    let cum = Cum::new(&arr);
    let mut ret = 0;
    for i in 1..arr.len()+1 {
        ret = std::cmp::max(ret, cum.sum(0, i));
    }
    println!("{}", ret);
}

#[derive(Debug)]
#[allow(dead_code)]
struct Cum {
    s: Vec<i64>,
}
#[allow(dead_code)]
impl Cum {
    fn new(a: &Vec<i64>) -> Cum {
        let mut s = vec![0; a.len() + 1];
        for i in 0..a.len() {
            s[i + 1] = s[i] + a[i];
        }
        Cum { s: s }
    }
    #[doc = " [l,r)"]
    fn sum(&self, l: usize, r: usize) -> i64 {
        self.s[r] - self.s[l]
    }
}

Submission Info

Submission Time
Task C - AtColor
User henoc
Language Rust (1.15.1)
Score 100
Code Size 2333 Byte
Status AC
Exec Time 50 ms
Memory 22908 KB

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 30 / 30 70 / 70
Status
AC × 2
AC × 17
AC × 42
Set Name Test Cases
Sample subtask0_sample01.txt, subtask0_sample02.txt
Subtask1 subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask0_sample01.txt, subtask0_sample02.txt
Subtask2 subtask0_sample01.txt, subtask0_sample02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt, subtask2_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt, subtask2_21.txt, subtask2_22.txt, subtask2_23.txt, subtask2_24.txt, subtask2_25.txt
Case Name Status Exec Time Memory
subtask0_sample01.txt AC 12 ms 20732 KB
subtask0_sample02.txt AC 12 ms 20732 KB
subtask1_01.txt AC 13 ms 20732 KB
subtask1_02.txt AC 13 ms 20732 KB
subtask1_03.txt AC 13 ms 20732 KB
subtask1_04.txt AC 13 ms 20732 KB
subtask1_05.txt AC 13 ms 20732 KB
subtask1_06.txt AC 13 ms 20732 KB
subtask1_07.txt AC 13 ms 20732 KB
subtask1_08.txt AC 13 ms 20732 KB
subtask1_09.txt AC 13 ms 20732 KB
subtask1_10.txt AC 13 ms 20732 KB
subtask1_11.txt AC 13 ms 20732 KB
subtask1_12.txt AC 13 ms 20732 KB
subtask1_13.txt AC 13 ms 20732 KB
subtask1_14.txt AC 13 ms 20732 KB
subtask1_15.txt AC 13 ms 20732 KB
subtask2_01.txt AC 39 ms 22780 KB
subtask2_02.txt AC 49 ms 22780 KB
subtask2_03.txt AC 38 ms 22780 KB
subtask2_04.txt AC 48 ms 22780 KB
subtask2_05.txt AC 44 ms 22780 KB
subtask2_06.txt AC 49 ms 22780 KB
subtask2_07.txt AC 49 ms 22780 KB
subtask2_08.txt AC 49 ms 22780 KB
subtask2_09.txt AC 49 ms 22780 KB
subtask2_10.txt AC 49 ms 22780 KB
subtask2_11.txt AC 50 ms 22908 KB
subtask2_12.txt AC 50 ms 22780 KB
subtask2_13.txt AC 49 ms 22780 KB
subtask2_14.txt AC 49 ms 22780 KB
subtask2_15.txt AC 49 ms 22780 KB
subtask2_16.txt AC 49 ms 22780 KB
subtask2_17.txt AC 49 ms 22780 KB
subtask2_18.txt AC 49 ms 22780 KB
subtask2_19.txt AC 49 ms 22780 KB
subtask2_20.txt AC 49 ms 22780 KB
subtask2_21.txt AC 49 ms 22780 KB
subtask2_22.txt AC 49 ms 22780 KB
subtask2_23.txt AC 49 ms 22780 KB
subtask2_24.txt AC 49 ms 22780 KB
subtask2_25.txt AC 49 ms 22780 KB