Task: | Pallo |
Sender: | xnor |
Submission time: | 2022-01-22 13:17:19 +0200 |
Language: | Rust |
Status: | READY |
Result: | 100 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 10 |
#2 | ACCEPTED | 35 |
#3 | ACCEPTED | 55 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
#2 | ACCEPTED | 0.01 s | 2, 3 | details |
#3 | ACCEPTED | 0.01 s | 3 | details |
Code
use std::io::{stdin, BufRead, BufReader};fn main() {let mut stdin = BufReader::new(stdin());let mut cur_line = String::new();stdin.read_line(&mut cur_line).unwrap();let t: usize = cur_line.trim().parse().unwrap();for _ in 0..t {cur_line.clear();stdin.read_line(&mut cur_line).unwrap();let nums = cur_line.split_whitespace().map(|s| s.parse::<u64>().unwrap()).collect::<Vec<_>>();if let &[n, m, k] = &nums[..] {let x = k / (n - 1) + k / (m - 1) - k / lcm(n - 1, m - 1);println!("{}", x);}}}fn lcm(a: u64, b: u64) -> u64 {let mut u = a;let mut v = b;loop {u %= v;if u == 0 {return (a / v) * b;}v %= u;if v == 0 {return (a / u) * b;}}}
Test details
Test 1
Group: 1, 2, 3
Verdict: ACCEPTED
input |
---|
100 10 5 76 9 8 78 8 6 49 3 3 94 ... |
correct output |
---|
25 19 15 47 8 ... |
user output |
---|
25 19 15 47 8 ... Truncated |
Test 2
Group: 2, 3
Verdict: ACCEPTED
input |
---|
1000 7 5 99033171167123849 6 8 472883555390027162 9 10 258937093512465880 10 6 691774305483997493 ... |
correct output |
---|
33011057055707949 148620545979722822 57541576336103529 199845910473154830 52151060432923288 ... |
user output |
---|
33011057055707949 148620545979722822 57541576336103529 199845910473154830 5215106043292328 ... Truncated |
Test 3
Group: 3
Verdict: ACCEPTED
input |
---|
1000 816332614 86098803 33572721929... |
correct output |
---|
4310587870 45982113074 1550250683 717639357 3282221941 ... |
user output |
---|
4310587870 45982113074 1550250683 717639357 3282221941 ... Truncated |