CSES - Datatähti 2025 loppu - Results
Submission details
Task:Poistot
Sender:EmuBird
Submission time:2025-01-18 14:20:02 +0200
Language:Rust (2021)
Status:READY
Result:11
Feedback
groupverdictscore
#1ACCEPTED11
#20
#30
Test results
testverdicttimegroup
#1ACCEPTED0.00 s1, 3details
#2ACCEPTED0.01 s1, 2, 3details
#3ACCEPTED0.00 s1, 3details
#4ACCEPTED0.01 s1, 3details
#5--2, 3details
#6--2, 3details
#7ACCEPTED0.25 s3details
#8ACCEPTED0.04 s3details
#9--3details
#10--3details

Code

use std::io::{stdin, Stdin};

fn read_line(stdin: &mut Stdin) -> String {
    let mut s = String::new();
    stdin.read_line(&mut s).unwrap();
    s = s.trim().to_owned();
    return s
}

fn main() {
    let mut stdin = stdin();

    let n: u32 = {
        let line = read_line(&mut stdin);
        line.parse().unwrap()
    };
    let mut numbers: Vec<u32> = {
        let line = read_line(&mut stdin);
        line.split_whitespace().map(|x| x.parse::<u32>().unwrap()).take(n as usize).collect()
    };

    let mut rounds: Vec<Vec<u32>> = vec![];
    while numbers.len() > 0 {
        let mut iter = numbers.iter();

        let mut num = *iter.next().unwrap();
        let mut removed_numbers = vec![num];
        let mut kept_numbers: Vec<u32> = vec![];

        loop {
            let next = match iter.next() {
                Some(val) => val,
                None => break,
            };
            if next > &num {
                num = *next;
                removed_numbers.push(*next);
            } else {
                kept_numbers.push(*next);
            }
        }
        
        rounds.push(removed_numbers);
        numbers = kept_numbers;
    }

    println!("{}\n{}", rounds.len(), rounds.iter().map(|group| group.iter().map(|x| format!("{}", x)).collect::<Vec<String>>().join(" ")).collect::<Vec<String>>().join("\n"));
}

Test details

Test 1

Group: 1, 3

Verdict: ACCEPTED

input
1000
447773962 773442532 122816 137...

correct output
53
447773962 773442532 908719430 ...

user output
53
447773962 773442532 908719430 ...
Truncated

Test 2

Group: 1, 2, 3

Verdict: ACCEPTED

input
1000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
1000




...

user output
1000
1
1
1
1
...
Truncated

Test 3

Group: 1, 3

Verdict: ACCEPTED

input
1000
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

correct output
1
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

user output
1
1 2 3 4 5 6 7 8 9 10 11 12 13 ...
Truncated

Test 4

Group: 1, 3

Verdict: ACCEPTED

input
1000
1000 999 998 997 996 995 994 9...

correct output
1000
1000 
999 
998 
997 
...

user output
1000
1000
999
998
997
...
Truncated

Test 5

Group: 2, 3

Verdict:

input
200000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

correct output
200000




...

user output
(empty)

Test 6

Group: 2, 3

Verdict:

input
200000
5 2 1 10 6 10 5 5 5 4 4 2 3 7 ...

correct output
20776
5 10 
2 6 10 
1 5 7 9 10 
5 7 8 9 10 
...

user output
(empty)

Test 7

Group: 3

Verdict: ACCEPTED

input
200000
591414747 75940263 760367935 9...

correct output
879
591414747 760367935 901888417 ...

user output
879
591414747 760367935 901888417 ...
Truncated

Test 8

Group: 3

Verdict: ACCEPTED

input
200000
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

correct output
1
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

user output
1
1 2 3 4 5 6 7 8 9 10 11 12 13 ...
Truncated

Test 9

Group: 3

Verdict:

input
200000
200000 199999 199998 199997 19...

correct output
200000
200000 
199999 
199998 
199997 
...

user output
(empty)

Test 10

Group: 3

Verdict:

input
200000
199999 199997 199995 199993 19...

correct output
100000
199999 200000 
199997 199998 
199995 199996 
199993 199994 
...

user output
(empty)