| Task: | Vuodet |
| Sender: | Metabolix |
| Submission time: | 2025-09-05 21:12:00 +0300 |
| Language: | Rust (2021) |
| Status: | READY |
| Result: | 100 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 100 |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | details |
| #2 | ACCEPTED | 0.00 s | details |
| #3 | ACCEPTED | 0.00 s | details |
Code
use std::io;
// Lukee rivin syötettä ja palauttaa sen sisältämät luvut vektorina.
fn read_numbers() -> Vec<i64> {
let mut input = String::new();
io::stdin().read_line(&mut input).expect("Luku epäonnistui");
input
.trim()
.split_whitespace()
.map(|s| s.parse().expect("Ei kelvollinen luku"))
.collect()
}
// Tarkistaa, sisältääkö luku n järjestyksessä numerot m.
fn contains_sequence(n: i64, m: i64) -> bool {
let n_str = n.to_string();
let m_str = m.to_string();
let mut i = 0;
let mut j = 0;
while i < n_str.len() && j < m_str.len() {
if n_str.chars().nth(i) == m_str.chars().nth(j) {
j += 1;
}
i += 1;
}
j == m_str.len()
}
// Luo vektorin leet-luvuista välillä a ja b.
fn get_leets(a: i64, b: i64) -> Vec<i64> {
(a..=b)
.filter(|&num| contains_sequence(1337 * num, num))
.collect()
}
fn main() {
let luvut = read_numbers();
let a = luvut[0];
let b = luvut[1];
let leets = get_leets(a, b);
println!("{}", leets.len());
for luku in leets {
println!("{}", luku);
}
}
Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| 1600 2400 |
| correct output |
|---|
| 6 1625 2000 2025 2050 ... |
| user output |
|---|
| 6 1625 2000 2025 2050 ... |
Test 2
Verdict: ACCEPTED
| input |
|---|
| 1773 1773 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 3
Verdict: ACCEPTED
| input |
|---|
| 2025 2025 |
| correct output |
|---|
| 1 2025 |
| user output |
|---|
| 1 2025 |
