CSES - Datatähti 2023 alku - Results
Submission details
Task:Kertoma
Sender:ToVoid
Submission time:2022-11-06 23:49:20 +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.29 s3details
#12ACCEPTED0.60 s3details
#13--3details
#14--3details
#15--3details
#16--3details

Code

use std::io::{BufRead, BufReader};
 
fn equals(nums: &[usize;10], has_nums: &Vec<usize>) -> bool {
    for i in 0..10 {
        if nums[i] != has_nums[i] {
            return false;
        }
    }
    true
}
 
fn multiply(num: usize, x: &mut Vec<usize>) {
    x[0] *= num;

    for i in 1..x.len() {
        x[i] *= num;

        x[i] += x[i-1]/10;
        x[i-1] = x[i-1]%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<usize> = split.map(|s| s.parse().unwrap()).collect::<Vec<_>>();
 
    let mut x: Vec<usize> = vec![1];
    let mut nums: [usize; 10];
 
    let mut a: usize = 0;
 
    for i in 2.. {
        multiply(i, &mut x);
        
        nums = [0; 10];
        for a in &x {
            nums[*a] += 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)