CSES - Datatähti 2023 alku - Results
Submission details
Task:Kertoma
Sender:ToVoid
Submission time:2022-11-06 22:22:28 +0200
Language:Rust
Status:READY
Result:46
Feedback
groupverdictscore
#1ACCEPTED22
#2ACCEPTED24
#30
Test results
testverdicttimegroup
#1ACCEPTED0.00 s1, 2, 3details
#2ACCEPTED0.00 s1, 2, 3details
#3ACCEPTED0.00 s1, 2, 3details
#4ACCEPTED0.00 s1, 2, 3details
#5ACCEPTED0.00 s1, 2, 3details
#6ACCEPTED0.00 s1, 2, 3details
#7ACCEPTED0.00 s2, 3details
#8ACCEPTED0.00 s2, 3details
#9ACCEPTED0.00 s2, 3details
#10ACCEPTED0.00 s2, 3details
#11ACCEPTED0.30 s3details
#12ACCEPTED0.60 s3details
#13--3details
#14--3details
#15--3details
#16--3details

Code

use std::io::{BufRead, BufReader};

fn equals(nums: &[u32;10], has_nums: &Vec<u32>) -> bool {
    for i in 0..10 {
        if nums[i] != has_nums[i] {
            return false;
        }
    }
    true
}

fn multiply(num: u32, x: &mut Vec<u32>) {
    *x = x.iter().map(|a| *a*num).collect::<Vec<_>>();
    for i in 0..(x.len() - 1) {
        x[i+1] += x[i]/10;
        x[i] = x[i]%10;
    }

    let mut last_i = x.len()-1;
    while x[last_i] >= 10 {
        x.push(x[last_i]/10);
        x[last_i] = x[last_i]%10;
        last_i += 1;
    }
}

fn main() {
    let mut input = BufReader::new(std::io::stdin());
    let mut line = "".to_string();
    input.read_line(&mut line).unwrap();
    let split = line.split_whitespace();
    let has_nums: Vec<u32> = split.map(|s| s.parse().unwrap()).collect::<Vec<_>>();

    let mut x: Vec<u32> = vec![1];
    let mut nums: [u32; 10];

    let mut a: u32 = 0;

    for i in 1.. {
        multiply(i, &mut x);
        nums = [0; 10];

        for a in &x {
            nums[*a as usize] += 1;
        }

        if equals(&nums, &has_nums) {
            a = i;
            break;
        }
    }

    println!("{}",a);
}

Test details

Test 1

Group: 1, 2, 3

Verdict: ACCEPTED

input
0 0 1 0 0 0 0 0 0 0

correct output
2

user output
2

Test 2

Group: 1, 2, 3

Verdict: ACCEPTED

input
0 0 0 0 0 0 1 0 0 0

correct output
3

user output
3

Test 3

Group: 1, 2, 3

Verdict: ACCEPTED

input
0 0 1 0 1 0 0 0 0 0

correct output
4

user output
4

Test 4

Group: 1, 2, 3

Verdict: ACCEPTED

input
2 0 1 1 0 0 1 0 2 0

correct output
10

user output
10

Test 5

Group: 1, 2, 3

Verdict: ACCEPTED

input
9 3 1 1 2 2 3 1 6 1

correct output
27

user output
27

Test 6

Group: 1, 2, 3

Verdict: ACCEPTED

input
10 4 3 4 3 2 2 4 3 7

correct output
36

user output
36

Test 7

Group: 2, 3

Verdict: ACCEPTED

input
71 53 36 30 25 29 42 24 34 29

correct output
199

user output
199

Test 8

Group: 2, 3

Verdict: ACCEPTED

input
71 33 46 38 27 45 36 21 35 35

correct output
205

user output
205

Test 9

Group: 2, 3

Verdict: ACCEPTED

input
93 38 35 26 43 54 38 25 41 34

correct output
222

user output
222

Test 10

Group: 2, 3

Verdict: ACCEPTED

input
100 33 33 45 36 43 38 54 56 36

correct output
242

user output
242

Test 11

Group: 3

Verdict: ACCEPTED

input
3419 1797 1845 1849 1879 1791 ...

correct output
5959

user output
5959

Test 12

Group: 3

Verdict: ACCEPTED

input
4776 2695 2709 2781 2616 2753 ...

correct output
8391

user output
8391

Test 13

Group: 3

Verdict:

input
20097 12282 12229 12214 12406 ...

correct output
32001

user output
(empty)

Test 14

Group: 3

Verdict:

input
47934 29918 29878 29713 29984 ...

correct output
71718

user output
(empty)

Test 15

Group: 3

Verdict:

input
84691 54156 54277 54533 54296 ...

correct output
123123

user output
(empty)

Test 16

Group: 3

Verdict:

input
99098 63339 63878 64182 63904 ...

correct output
142663

user output
(empty)