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 |