| Task: | Kertoma | 
| Sender: | ToVoid | 
| Submission time: | 2022-11-09 16:45:42 +0200 | 
| Language: | Rust | 
| Status: | READY | 
| Result: | 46 | 
| group | verdict | score | 
|---|---|---|
| #1 | ACCEPTED | 22 | 
| #2 | ACCEPTED | 24 | 
| #3 | TIME LIMIT EXCEEDED | 0 | 
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | 1, 2, 3 | details | 
| #2 | ACCEPTED | 0.00 s | 1, 2, 3 | details | 
| #3 | ACCEPTED | 0.00 s | 1, 2, 3 | details | 
| #4 | ACCEPTED | 0.00 s | 1, 2, 3 | details | 
| #5 | ACCEPTED | 0.00 s | 1, 2, 3 | details | 
| #6 | ACCEPTED | 0.00 s | 1, 2, 3 | details | 
| #7 | ACCEPTED | 0.00 s | 2, 3 | details | 
| #8 | ACCEPTED | 0.00 s | 2, 3 | details | 
| #9 | ACCEPTED | 0.00 s | 2, 3 | details | 
| #10 | ACCEPTED | 0.00 s | 2, 3 | details | 
| #11 | ACCEPTED | 0.26 s | 3 | details | 
| #12 | ACCEPTED | 0.53 s | 3 | details | 
| #13 | TIME LIMIT EXCEEDED | -- | 3 | details | 
| #14 | TIME LIMIT EXCEEDED | -- | 3 | details | 
| #15 | TIME LIMIT EXCEEDED | -- | 3 | details | 
| #16 | TIME LIMIT EXCEEDED | -- | 3 | details | 
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>, num_of_leading_zeros: &mut usize) {
    let mut start: usize = 0;
    for i in *num_of_leading_zeros..x.len() {
        if x[i] != 0 {
            start = i;
            break;
        } 
    }
    *num_of_leading_zeros = start;
    x[start] *= num;
    for i in (start+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<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;
    let mut b: usize = 0;
 
    for i in 2.. {
        multiply(i, &mut x, &mut b);
        
        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: TIME LIMIT EXCEEDED
| input | 
|---|
| 20097 12282 12229 12214 12406 ... | 
| correct output | 
|---|
| 32001 | 
| user output | 
|---|
| (empty) | 
Test 14
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input | 
|---|
| 47934 29918 29878 29713 29984 ... | 
| correct output | 
|---|
| 71718 | 
| user output | 
|---|
| (empty) | 
Test 15
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input | 
|---|
| 84691 54156 54277 54533 54296 ... | 
| correct output | 
|---|
| 123123 | 
| user output | 
|---|
| (empty) | 
Test 16
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input | 
|---|
| 99098 63339 63878 64182 63904 ... | 
| correct output | 
|---|
| 142663 | 
| user output | 
|---|
| (empty) | 
