| Task: | Tulkki |
| Sender: | ma100 |
| Submission time: | 2025-10-28 11:08:13 +0200 |
| Language: | Rust (2021) |
| Status: | READY |
| Result: | 12 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 12 |
| #2 | RUNTIME ERROR | 0 |
| #3 | RUNTIME ERROR | 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.01 s | 1, 2, 3 | details |
| #7 | RUNTIME ERROR | 0.00 s | 2, 3 | details |
| #8 | RUNTIME ERROR | 0.00 s | 2, 3 | details |
| #9 | RUNTIME ERROR | 0.00 s | 2, 3 | details |
| #10 | RUNTIME ERROR | 0.00 s | 2, 3 | details |
| #11 | RUNTIME ERROR | 0.00 s | 2, 3 | details |
| #12 | RUNTIME ERROR | 0.00 s | 2, 3 | details |
| #13 | RUNTIME ERROR | 0.00 s | 3 | details |
| #14 | RUNTIME ERROR | 0.00 s | 3 | details |
| #15 | RUNTIME ERROR | 0.00 s | 3 | details |
| #16 | RUNTIME ERROR | 0.00 s | 3 | details |
| #17 | RUNTIME ERROR | 0.00 s | 3 | details |
| #18 | RUNTIME ERROR | 0.00 s | 3 | details |
Code
use std::io::{self, Read};
fn main() {
let mut regs: [u32; 26] = [0; 26];
let mut left_over = String::with_capacity(0x80);
let mut total_input = String::with_capacity(0xff);
io::stdin().read_to_string(&mut total_input).expect("read stdin error");
let mut total_input = total_input.split("\n");
loop {
let mut input = left_over.clone();
// Read a new line if too little data is available
if left_over.split_ascii_whitespace().count() < 2 {
let mut buf = input.clone();
buf.push_str(match total_input.next() {
Some(s) => s,
None => break,
});
let mut buf = buf.trim();
match buf.find("#") {
Some(i) => buf = &buf[..i],
None => {},
};
if buf.is_empty() {
continue;
}
input = buf.to_string();
}
let mut input = input.split_ascii_whitespace();
let instr = input.next().expect("too few arguments");
left_over.push_str(instr);
left_over.push(' ');
let reg = match input.next() {
Some(s) => s,
None => continue,
};
left_over.push_str(reg);
left_over.push(' ');
let reg: usize = (reg.as_bytes()[0] - 65).into();
match instr {
"CLEAR" => regs[reg] = 0,
"INCREASE" => regs[reg] += 1,
"PRINT" => println!("{}", regs[reg]),
_ => panic!("illegal instruction '{instr}'"),
}
left_over = String::with_capacity(0x80);
for member in input {
left_over.push_str(member);
left_over.push(' ');
}
}
}
Test details
Test 1 (public)
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| PRINT X INCREASE X PRINT X INCREASE X PRINT X ... |
| correct output |
|---|
| 0 1 2 0 |
| user output |
|---|
| 0 1 2 0 |
Test 2 (public)
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| INCREASE X # aybabtu PRINT X INCREASE # test ... |
| correct output |
|---|
| 1 3 |
| user output |
|---|
| 1 3 |
Test 3 (public)
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| # Create number 3 INCREASE X INCREASE X INCREASE X ... |
| correct output |
|---|
| 3 |
| user output |
|---|
| 3 |
Test 4 (public)
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| INCREASE A PRINT A INCREASE B PRINT B INCREASE C ... |
| correct output |
|---|
| 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
| user output |
|---|
| 1 1 1 1 1 ... |
Test 5 (public)
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| INCREASE X INCREASE X INCREASE X INCREASE X INCREASE X ... |
| correct output |
|---|
| 999 |
| user output |
|---|
| 999 |
Test 6 (public)
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| PRINT X PRINT X PRINT X PRINT X PRINT X ... |
| correct output |
|---|
| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... |
| user output |
|---|
| 0 0 0 0 0 ... |
Test 7 (public)
Group: 2, 3
Verdict: RUNTIME ERROR
| input |
|---|
| INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A ... |
| correct output |
|---|
| 5 5 5 5 5 |
| user output |
|---|
| (empty) |
Error:
thread 'main' panicked at input/code.rs:46:18: illegal instruction 'REPEAT' note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Test 8 (public)
Group: 2, 3
Verdict: RUNTIME ERROR
| input |
|---|
| INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A ... |
| correct output |
|---|
| 0 0 0 0 0 |
| user output |
|---|
| (empty) |
Error:
thread 'main' panicked at input/code.rs:46:18: illegal instruction 'REPEAT' note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Test 9 (public)
Group: 2, 3
Verdict: RUNTIME ERROR
| input |
|---|
| INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A ... |
| correct output |
|---|
| 6 7 8 9 10 |
| user output |
|---|
| (empty) |
Error:
thread 'main' panicked at input/code.rs:46:18: illegal instruction 'REPEAT' note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Test 10 (public)
Group: 2, 3
Verdict: RUNTIME ERROR
| input |
|---|
| INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A ... |
| correct output |
|---|
| 5 5 |
| user output |
|---|
| (empty) |
Error:
thread 'main' panicked at input/code.rs:46:18: illegal instruction 'REPEAT' note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Test 11 (public)
Group: 2, 3
Verdict: RUNTIME ERROR
| input |
|---|
| INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A ... |
| correct output |
|---|
| 20 |
| user output |
|---|
| (empty) |
Error:
thread 'main' panicked at input/code.rs:46:18: illegal instruction 'REPEAT' note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Test 12 (public)
Group: 2, 3
Verdict: RUNTIME ERROR
| input |
|---|
| INCREASE A INCREASE A INCREASE B INCREASE B ... |
| correct output |
|---|
| 42 |
| user output |
|---|
| (empty) |
Error:
thread 'main' panicked at input/code.rs:46:18: illegal instruction 'REPEAT' note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Test 13 (public)
Group: 3
Verdict: RUNTIME ERROR
| input |
|---|
| INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A ... |
| correct output |
|---|
| 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 |
| user output |
|---|
| (empty) |
Error:
thread 'main' panicked at input/code.rs:46:18: illegal instruction 'REPEAT' note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Test 14 (public)
Group: 3
Verdict: RUNTIME ERROR
| input |
|---|
| # Create number 3 INCREASE A INCREASE A INCREASE... |
| correct output |
|---|
| 12 |
| user output |
|---|
| (empty) |
Error:
thread 'main' panicked at input/code.rs:46:18: illegal instruction 'REPEAT' note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Test 15 (public)
Group: 3
Verdict: RUNTIME ERROR
| input |
|---|
| INCREASE X INCREASE X INCREASE X INCREASE X INCREASE X ... |
| correct output |
|---|
| 531441 |
| user output |
|---|
| (empty) |
Error:
thread 'main' panicked at input/code.rs:46:18: illegal instruction 'REPEAT' note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Test 16 (public)
Group: 3
Verdict: RUNTIME ERROR
| input |
|---|
| INCREASE A INCREASE A INCREASE A INCREASE A INCREASE A ... |
| correct output |
|---|
| 1337 |
| user output |
|---|
| (empty) |
Error:
thread 'main' panicked at input/code.rs:46:18: illegal instruction 'REPEAT' note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Test 17 (public)
Group: 3
Verdict: RUNTIME ERROR
| input |
|---|
| INCREASE A INCREASE A REPEAT A TIMES ( REPEAT A TIMES ( ... |
| correct output |
|---|
| 1 2 1 2 1 1 3 4 3 4 3 4 3 4 3 ... |
| user output |
|---|
| (empty) |
Error:
thread 'main' panicked at input/code.rs:46:18: illegal instruction 'REPEAT' note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Test 18 (public)
Group: 3
Verdict: RUNTIME ERROR
| input |
|---|
| # Efficient algorithm for find... |
| correct output |
|---|
| 2 3 5 7 11 13 17 19 23 29 31 3... |
| user output |
|---|
| (empty) |
Error:
thread 'main' panicked at input/code.rs:46:18: illegal instruction 'REPEAT' note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
