CSES - Datatähti 2023 alku - Results
Submission details
Task:Lehmät
Sender:EmuBird
Submission time:2022-11-06 19:23:49 +0200
Language:Rust
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED28
#2ACCEPTED72
Test results
testverdicttimegroup
#1ACCEPTED0.00 s1, 2details
#2ACCEPTED0.00 s1, 2details
#3ACCEPTED0.00 s1, 2details
#4ACCEPTED0.00 s1, 2details
#5ACCEPTED0.00 s1, 2details
#6ACCEPTED0.00 s2details
#7ACCEPTED0.00 s2details
#8ACCEPTED0.00 s2details
#9ACCEPTED0.00 s2details

Code

use std::io;

fn main() {
    let height = {
        let mut input: String = String::new();
        io::stdin().read_line(&mut input).unwrap();

        let mut split = input.split_whitespace();

        split.next().unwrap().parse::<u16>().unwrap()
    };

    let mut cow_counter: u32 = 0;
    let mut top_bound = u16::MAX;

    for i in 0..height {
        let mut input: String = String::new();
        io::stdin().read_line(&mut input).unwrap();

        if top_bound < i {
            let mut left_bound = usize::MAX;
            for (i, char) in input.char_indices() {
                if char == '*' {
                    if left_bound != usize::MAX && left_bound + 1 == i {
                        // This is bottom bound
                        top_bound = u16::MAX;
                        break;
                    } else if left_bound < i {
                        break;
                    } else {
                        left_bound = i;
                    }
                } else if left_bound < i && char == '@' {
                    cow_counter += 1;
                }
            }
        } else if input.contains("**") {
            top_bound = i;
        }
    }

    println!("{}", cow_counter)
}

Test details

Test 1

Group: 1, 2

Verdict: ACCEPTED

input
3 3
***
*.*
***

correct output
0

user output
0

Test 2

Group: 1, 2

Verdict: ACCEPTED

input
3 3
***
*@*
***

correct output
1

user output
1

Test 3

Group: 1, 2

Verdict: ACCEPTED

input
5 10
...@......
..******..
@.*@@@@*.@
..******..
...

correct output
4

user output
4

Test 4

Group: 1, 2

Verdict: ACCEPTED

input
10 10
@@...@.@@@
..@@.@@..@
@.*******@
..*@....*.
...

correct output
11

user output
11

Test 5

Group: 1, 2

Verdict: ACCEPTED

input
10 10
**********
*@@@@@@@@*
*@@@@@@@@*
*@@@@@@@@*
...

correct output
64

user output
64

Test 6

Group: 2

Verdict: ACCEPTED

input
100 100
.........................@.......

correct output
60

user output
60

Test 7

Group: 2

Verdict: ACCEPTED

input
100 100
..@@..........@......@....@@.....

correct output
1507

user output
1507

Test 8

Group: 2

Verdict: ACCEPTED

input
100 100
.@..@@..@@.@..@..@..@@..@..@.....

correct output
3348

user output
3348

Test 9

Group: 2

Verdict: ACCEPTED

input
100 100
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@...

correct output
7225

user output
7225