| Task: | Kertoma |
| Sender: | ToVoid |
| Submission time: | 2022-11-06 22:55:12 +0200 |
| Language: | Rust |
| Status: | READY |
| Result: | 0 |
| group | verdict | score |
|---|---|---|
| #1 | TIME LIMIT EXCEEDED | 0 |
| #2 | TIME LIMIT EXCEEDED | 0 |
| #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 | TIME LIMIT EXCEEDED | -- | 1, 2, 3 | details |
| #6 | TIME LIMIT EXCEEDED | -- | 1, 2, 3 | details |
| #7 | TIME LIMIT EXCEEDED | -- | 2, 3 | details |
| #8 | TIME LIMIT EXCEEDED | -- | 2, 3 | details |
| #9 | TIME LIMIT EXCEEDED | -- | 2, 3 | details |
| #10 | TIME LIMIT EXCEEDED | -- | 2, 3 | details |
| #11 | TIME LIMIT EXCEEDED | -- | 3 | details |
| #12 | TIME LIMIT EXCEEDED | -- | 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
}
const M: u32 = 1000000000;
const L: u32 = 9;
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]/M;
x[i] = x[i]%M;
}
let mut last_i = x.len()-1;
while x[last_i] >= M {
x.push(x[last_i]/M);
x[last_i] = x[last_i]%M;
last_i += 1;
}
}
fn update_nums(nums: &mut [u32;10], x: &Vec<u32>) {
let mut pienempi;
let mut isompi;
for a in x {
for i in 0..L {
pienempi = 10_u32.pow(i);
isompi = pienempi * 10;
nums[(a%isompi/pienempi) as usize] += 1;
}
}
nums[0] -= {
let mut r = 0;
for i in (0..L).rev() {
pienempi = 10_u32.pow(i);
isompi = pienempi * 10;
if (x[x.len()-1]%isompi/pienempi) == 0 {
r += 1;
} else {
break;
}
}
r
};
}
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 2.. {
multiply(i, &mut x);
nums = [0; 10];
update_nums(&mut nums, &x);
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: TIME LIMIT EXCEEDED
| input |
|---|
| 9 3 1 1 2 2 3 1 6 1 |
| correct output |
|---|
| 27 |
| user output |
|---|
| (empty) |
Test 6
Group: 1, 2, 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 10 4 3 4 3 2 2 4 3 7 |
| correct output |
|---|
| 36 |
| user output |
|---|
| (empty) |
Test 7
Group: 2, 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 71 53 36 30 25 29 42 24 34 29 |
| correct output |
|---|
| 199 |
| user output |
|---|
| (empty) |
Test 8
Group: 2, 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 71 33 46 38 27 45 36 21 35 35 |
| correct output |
|---|
| 205 |
| user output |
|---|
| (empty) |
Test 9
Group: 2, 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 93 38 35 26 43 54 38 25 41 34 |
| correct output |
|---|
| 222 |
| user output |
|---|
| (empty) |
Test 10
Group: 2, 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 100 33 33 45 36 43 38 54 56 36 |
| correct output |
|---|
| 242 |
| user output |
|---|
| (empty) |
Test 11
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 3419 1797 1845 1849 1879 1791 ... |
| correct output |
|---|
| 5959 |
| user output |
|---|
| (empty) |
Test 12
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 4776 2695 2709 2781 2616 2753 ... |
| correct output |
|---|
| 8391 |
| user output |
|---|
| (empty) |
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) |
