trang chủ / bài tập / succrate

Tỷ lệ thành công

Đề bài

Mô tả

Bạn đã thực hiện y lần nộp bài trên một hệ thống chấm tự động, trong đó có x lần được chấp nhận. Tỷ lệ thành công hiện tại của bạn là xy.

Phân số yêu thích của bạn trong đoạn [0;1]pq (phân số đã tối giản). Bạn muốn biết: cần thực hiện thêm ít nhất bao nhiêu lần nộp bài nữa để tỷ lệ thành công bằng đúng pq?

Trong những lần nộp thêm, bạn có thể tuỳ chọn bao nhiêu lần được chấp nhận và bao nhiêu lần bị từ chối.

Dữ liệu vào

Dòng đầu chứa số nguyên t — số lượng test trong file (1t1000).

t dòng tiếp theo, mỗi dòng chứa bốn số nguyên x,y,p,q (0xy109; 0pq109; y>0; q>0). Phân số pq đã tối giản.

Dữ liệu ra

Với mỗi test, in ra một dòng chứa số nguyên: số lần nộp thêm tối thiểu cần thực hiện, hoặc 1 nếu không thể đạt được tỷ lệ pq.

Ràng buộc

  • 1t1000
  • 0xy109
  • 0pq109
  • y>0, q>0
  • gcd(p,q)=1

Ví dụ

Input Output Giải thích
4
3 10 1 2
7 14 3 8
20 70 2 7
5 6 1 1
4
10
0
-1
Test 1: nộp thêm 4 lần đều thành công 7/14=1/2. Test 2: nộp thêm 2 thành công và 8 thất bại 9/24=3/8. Test 3: 20/70=2/7 đã đúng. Test 4: đã có 1 lần thất bại nên không thể đạt 1/1.
1
1 1 1 1
0 Tỷ lệ hiện tại đã là 1/1.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0