Task: | Pinot |
Sender: | Hennkka |
Submission time: | 2020-09-05 18:12:40 +0300 |
Language: | Rust |
Status: | READY |
Result: | 100 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 23 |
#2 | ACCEPTED | 77 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | ACCEPTED | 0.01 s | 1, 2 | details |
#2 | ACCEPTED | 0.01 s | 2 | details |
Code
use std::io::BufRead; use std::str::FromStr; fn solve(a: usize, b: usize) -> usize { let mut res = 0; let mut a = a; let mut b = b; if b < a { std::mem::swap(&mut a, &mut b); } while a != 0 { let removals = b / a; b -= removals * a; res += removals; std::mem::swap(&mut a, &mut b); } res } fn main() { let stdin = std::io::stdin(); let stdin = stdin.lock(); let mut lines = stdin.lines(); let t = usize::from_str(&lines.next().unwrap().unwrap()).unwrap(); for _ in 0..t { let line: Vec<_> = lines .next() .unwrap() .unwrap() .split_whitespace() .map(|v| usize::from_str(&v).unwrap()) .collect(); let (a, b) = (line[0], line[1]); println!("{}", solve(a, b)); } // assert_eq!(list.len(), n); } #[cfg(test)] mod tests { use super::*; #[test] fn sample_cases() { assert_eq!(solve(3, 10), 6); assert_eq!(solve(5, 5), 1); assert_eq!(solve(1, 100), 100); } #[test] fn big_case() { assert_eq!(solve(1, 1_000_000_000), 1_000_000_000); } }
Test details
Test 1
Group: 1, 2
Verdict: ACCEPTED
input |
---|
1000 5 90 19 86 66 28 10 47 ... |
correct output |
---|
18 15 9 10 16 ... |
user output |
---|
18 15 9 10 16 ... Truncated |
Test 2
Group: 2
Verdict: ACCEPTED
input |
---|
1000 1 936283842 56227247 73458046 364717918 449812461 158413382 363667122 ... |
correct output |
---|
936283842 167 116 59 158 ... |
user output |
---|
936283842 167 116 59 158 ... Truncated |