| Task: | HQ9+ |
| Sender: | Hennkka |
| Submission time: | 2020-11-27 21:03:14 +0200 |
| Language: | Rust |
| Status: | READY |
| Result: | 100 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 15 |
| #2 | ACCEPTED | 85 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.01 s | 1, 2 | details |
| #2 | ACCEPTED | 0.01 s | 2 | details |
Code
use std::io::BufRead;
fn solve(n: usize) -> String {
let mut n = n;
let mut res = "".to_string();
while n > 0 {
if n >= 494 {
res.push('9');
n -= 494;
} else {
res.push('H');
n -= 1;
}
}
res
}
fn main() {
let stdin = std::io::stdin();
let stdin = stdin.lock();
let mut lines = stdin.lines();
let t: usize = lines.next().unwrap().unwrap().parse().unwrap();
for _ in 0..t {
let n: usize = lines.next().unwrap().unwrap().parse().unwrap();
println!("{}", solve(n));
}
}
#[cfg(test)]
mod tests {
use super::*;
fn program_output_len(output: String) -> usize {
output
.chars()
.map(|c| match c {
'H' | 'Q' => 1,
'9' => 494,
'+' => 0,
_ => panic!("invalid character {}", c),
})
.sum()
}
fn assert_program(n: usize) {
assert_eq!(program_output_len(solve(n)), n);
}
#[test]
fn test_samples() {
assert_program(1);
assert_program(494);
assert_program(5);
}
}
Test details
Test 1
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 100 10 96 42 77 ... |
| correct output |
|---|
| HHHHHHHHHH HHHHHHHHHHHHHHHHHHHHHHHHHHHHHH... |
| user output |
|---|
| HHHHHHHHHH HHHHHHHHHHHHHHHHHHHHHHHHHHHHHH... Truncated |
Test 2
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 100 76364 26254 35192 92572 ... |
| correct output |
|---|
| 999999999999999999999999999999... |
| user output |
|---|
| 999999999999999999999999999999... Truncated |
