| Task: | Pizzat |
| Sender: | villsukka |
| Submission time: | 2024-10-28 14:26:23 +0200 |
| 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 |
| #4 | ACCEPTED | 0.00 s | details |
| #5 | ACCEPTED | 0.00 s | details |
| #6 | ACCEPTED | 0.00 s | details |
| #7 | ACCEPTED | 0.00 s | details |
| #8 | ACCEPTED | 0.00 s | details |
| #9 | ACCEPTED | 0.00 s | details |
| #10 | ACCEPTED | 0.00 s | details |
| #11 | ACCEPTED | 0.00 s | details |
| #12 | ACCEPTED | 0.00 s | details |
| #13 | ACCEPTED | 0.00 s | details |
Code
use std::{io, str::FromStr};
#[derive(Debug)]
struct Pizza {
people_count: i32,
slice_count: i32,
}
impl FromStr for Pizza {
type Err = ();
fn from_str(s: &str) -> std::result::Result<Self, Self::Err> {
let mut parts = s
.strip_suffix('\n')
.or(Some(s))
.expect("Or is always something")
.split(" ");
let people_count: i32 = parts
.next()
.expect("Missing 1st parameter")
.parse()
.expect("1st parameter");
let pizza_count: i32 = parts
.next()
.expect("Missing 2nd parameter")
.parse()
.expect("2nd parameter");
let slices_per_pizza: i32 = parts
.next()
.expect("Missing 3rd parameter")
.parse()
.expect("3rd parameter");
Ok(Self {
people_count,
slice_count: pizza_count * slices_per_pizza,
})
}
}
impl Pizza {
pub fn count_slices_per_person(&self) -> (i32, i32) {
let min_slice_per_person = self.slice_count / self.people_count;
let max_slice_per_person = match self.slice_count % self.people_count {
0 => min_slice_per_person,
_ => min_slice_per_person + 1,
};
(min_slice_per_person, max_slice_per_person)
}
}
fn main() {
let mut input = String::new();
io::stdin().read_line(&mut input).unwrap();
let pizza: Pizza = input.parse().unwrap();
dbg!(&pizza);
let (x, y) = pizza.count_slices_per_person();
println!("{} {}", x, y);
}
Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| 3 2 4 |
| correct output |
|---|
| 2 3 |
| user output |
|---|
| 2 3 |
Error:
[input/code.rs:62] &pizza = Pizza {
people_count: 3,
slice_count: 8,
}Test 2
Verdict: ACCEPTED
| input |
|---|
| 1 1 1 |
| correct output |
|---|
| 1 1 |
| user output |
|---|
| 1 1 |
Error:
[input/code.rs:62] &pizza = Pizza {
people_count: 1,
slice_count: 1,
}Test 3
Verdict: ACCEPTED
| input |
|---|
| 1 1 2 |
| correct output |
|---|
| 2 2 |
| user output |
|---|
| 2 2 |
Error:
[input/code.rs:62] &pizza = Pizza {
people_count: 1,
slice_count: 2,
}Test 4
Verdict: ACCEPTED
| input |
|---|
| 2 1 1 |
| correct output |
|---|
| 0 1 |
| user output |
|---|
| 0 1 |
Error:
[input/code.rs:62] &pizza = Pizza {
people_count: 2,
slice_count: 1,
}Test 5
Verdict: ACCEPTED
| input |
|---|
| 2 5 7 |
| correct output |
|---|
| 17 18 |
| user output |
|---|
| 17 18 |
Error:
[input/code.rs:62] &pizza = Pizza {
people_count: 2,
slice_count: 35,
}Test 6
Verdict: ACCEPTED
| input |
|---|
| 1 1000 1000 |
| correct output |
|---|
| 1000000 1000000 |
| user output |
|---|
| 1000000 1000000 |
Error:
[input/code.rs:62] &pizza = Pizza {
people_count: 1,
slice_count: 1000000,
}Test 7
Verdict: ACCEPTED
| input |
|---|
| 1000 1000 1000 |
| correct output |
|---|
| 1000 1000 |
| user output |
|---|
| 1000 1000 |
Error:
[input/code.rs:62] &pizza = Pizza {
people_count: 1000,
slice_count: 1000000,
}Test 8
Verdict: ACCEPTED
| input |
|---|
| 1000 1 1 |
| correct output |
|---|
| 0 1 |
| user output |
|---|
| 0 1 |
Error:
[input/code.rs:62] &pizza = Pizza {
people_count: 1000,
slice_count: 1,
}Test 9
Verdict: ACCEPTED
| input |
|---|
| 997 995 997 |
| correct output |
|---|
| 995 995 |
| user output |
|---|
| 995 995 |
Error:
[input/code.rs:62] &pizza = Pizza {
people_count: 997,
slice_count: 992015,
}Test 10
Verdict: ACCEPTED
| input |
|---|
| 997 994 997 |
| correct output |
|---|
| 994 994 |
| user output |
|---|
| 994 994 |
Error:
[input/code.rs:62] &pizza = Pizza {
people_count: 997,
slice_count: 991018,
}Test 11
Verdict: ACCEPTED
| input |
|---|
| 997 996 995 |
| correct output |
|---|
| 994 995 |
| user output |
|---|
| 994 995 |
Error:
[input/code.rs:62] &pizza = Pizza {
people_count: 997,
slice_count: 991020,
}Test 12
Verdict: ACCEPTED
| input |
|---|
| 997 996 996 |
| correct output |
|---|
| 995 996 |
| user output |
|---|
| 995 996 |
Error:
[input/code.rs:62] &pizza = Pizza {
people_count: 997,
slice_count: 992016,
}Test 13
Verdict: ACCEPTED
| input |
|---|
| 997 995 499 |
| correct output |
|---|
| 497 498 |
| user output |
|---|
| 497 498 |
Error:
[input/code.rs:62] &pizza = Pizza {
people_count: 997,
slice_count: 496505,
}