Orange Contest #02 - Lối Thoát Không Gian

Xem PDF




Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 2300 (p) Thời gian: 1.67s Bộ nhớ: 512M Input: loithoatkhonggian.inp Output: loithoatkhonggian.out

Sau khi thành công chống lại mã độc, CandySnowy liền nói: "Hay là mình đi chơi chút cho xả stress đi".
Vì vừa mới căng thẳng viết code, BabyOrange liền đồng ý. Trong chuyến đi, họ định đi tới công viên để chơi, ai dè họ lại bị đi lạc tới một "mê cung" kỳ quái, nói đúng hơn là một mạng lưới các trạm dịch chuyển.
Hệ thống dịch chuyển này gồm \(n\) trạm, giữa bất kỳ hai trạm phân biệt \(u\)\(v\) nào cũng có một đường dẫn dịch chuyển. Tuy nhiên, việc di chuyển sẽ tiêu tốn một mức năng lượng được tính bằng công thức: \(w(u,v) = \frac{max(u,v)}{gcd(u,v)}\).
Trong đó, \(gcd(x,y)\) là ước chung lớn nhất của \(x\)\(y\)
Hiện tại, hai người đang đứng ở trạm \(a\) và cửa thoát hiểm nằm ở trạm \(b\). Họ rất muốn ra nhưng vì đã dùng hết IQ để viết code nâng cấp nên giờ này không còn sức để giải nữa.
Hãy giúp BabyOrangeCandySnowy tìm đường từ \(a\) tới \(b\) mà tốn ít năng lượng nhất

Input

  • Một dòng duy nhất chứa ba số \(n,a,b\) \((2 \le n \le 10^9, 1 \le a,b \le n, a \neq b)\)

Output

  • Một số nguyên duy nhất biểu thị số năng lượng ít nhất để tới trạm \(b\)

Example

Test 1

Input
10 9 8
Output
7
Note

Hai bạn có thể đi theo lộ trình như sau:

  • Từ trạm 9 tới trạm 6: Năng lượng bị hao là: \(w(9,6) = \frac{max(9,6)}{gcd(9,6)} = \frac{9}{3} = 3\)
  • Từ trạm 6 tới trạm 8: Năng lượng bị hao là: $w(6,8) = 4

Tổng: 3 + 4 = 7
Nếu hai bạn đi từ trạm 9 tới trạm 8 luôn thì năng lượng bị hao là: \(w(9,8) = 9 > 7\) nên không được vì tốn nhiều năng lượng hơn.

Test 2

Input
100 16 27
Output
10

Test 3

Input
100 55 11
Output
5

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: