Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi
    solution

    Đề bài: Đồng dư

    Bạn là một nhà toán học lập trình nổi tiếng thế giới, được giao nhiệm vụ giải quyết các vấn đề liên quan đến thuật toán đồng dư và lũy thừa. Chính phủ đã phát hiện ra một công thức bí mật và họ cần sự trợ giúp của bạn để xác định xem công thức đó có khớp với mục tiêu đã cho hay không. Mỗi cảm biến trong chuỗi các cảm biến bí ẩn đưa ra một dãy số gồm bốn số nguyên: a, b, c, m. Nhiệm vụ của bạn là xác định liệu công thức sau có khớp với mục tiêu target hay không:

    s≡ab(mod10)s \equiv a^{b} \pmod{10}s≡ab(mod10)

    v≡sc(modm)v \equiv s^{c} \pmod{m}v≡sc(modm)

    Nói cách khác:

    1. Lấy chữ số tận cùng của aba^{b}ab, gọi là sss (tức s=ab mod 10s = a^{b} \bmod 10s=abmod10).
    2. Nâng sss lên lũy thừa ccc rồi lấy phần dư khi chia cho mmm, được giá trị vvv.
    3. So sánh vvv với target.

    Ví dụ với a = 987, b = 654, c = 321, m = 1000: chữ số tận cùng của 987654987^{654}987654 là s=9s = 9s=9, và 9321 mod 1000=2099^{321} \bmod 1000 = 2099321mod1000=209, nên v=209v = 209v=209.

    • Định dạng đầu vào:
      • Dòng đầu tiên chứa số nguyên T — số cảm biến.
      • T dòng tiếp theo, mỗi dòng gồm 5 số nguyên cách nhau bởi dấu cách: a b c m target.

      Giới hạn: 1≤T≤201 \le T \le 201≤T≤20; 1≤a,b,c,m≤10001 \le a, b, c, m \le 10001≤a,b,c,m≤1000; 0≤target<m0 \le target < m0≤target<m.

    • Định dạng đầu ra:

      Với mỗi cảm biến, in ra hai dòng:

      • Dòng thứ nhất: giá trị vvv tính được.
      • Dòng thứ hai: YES nếu v=targetv = targetv=target, ngược lại in NO.

      Ví dụ

      Input:

      2
      987 654 321 1000 209
      500 250 100 75 25
      

      Output:

      209
      YES
      0
      NO
      

    Ví dụ:

    Đầu vào:

    7
    39 3 1000 1000 17
    500 250 100 75 25
    987 654 321 1000 10
    7 6 5 3 2
    1 2 3 4 5
    233 456 789 543 123
    10 1 1 2 1

    Đầu ra:

    1
    NO
    0
    NO
    209
    NO
    0
    NO
    1
    NO
    1
    NO
    0
    NO
    

    Đầu vào:

    10
    123 456 789 10 1
    999 1000 1000 999 50
    20 15 25 30 20
    2 100 200 50 20
    1000 999 888 777 666
    8 8 8 1000 512
    345 678 910 123 456
    234 345 456 567 78
    789 123 456 789 12
    678 234 456 789 90

    Đầu ra:

    1
    YES
    1
    NO
    0
    NO
    26
    NO
    0
    NO
    616
    NO
    40
    NO
    505
    NO
    618
    NO
    337
    NO

    Đầu vào:

    3
    2 3 3 10 2
    3 3 3 1 2
    6 1 1 4 2

    Đầu ra:

    2
    YES
    0
    NO
    2
    YES

    Đầu vào:

    10
    123 456 789 10 1
    999 1000 1000 999 50
    20 15 25 30 20
    2 100 200 50 20
    1000 999 888 777 666
    8 8 8 1000 512
    345 678 910 123 456
    234 345 456 567 78
    789 123 456 789 12
    678 234 456 789 90

    Đầu ra:

    1
    YES
    1
    NO
    0
    NO
    26
    NO
    0
    NO
    616
    NO
    40
    NO
    505
    NO
    618
    NO
    337
    NO

    Đầu vào:

    10
    333 444 555 666 123
    987 876 765 654 123
    5 5 5 10 5
    12 13 14 15 16
    100 200 300 400 123
    500 600 700 800 234
    2 3 4 5 6
    9 8 7 6 5
    234 456 678 890 100
    120 240 360 480 240

    Đầu ra:

    1
    NO
    1
    NO
    5
    YES
    4
    NO
    0
    NO
    0
    NO
    1
    NO
    1
    NO
    366
    NO
    0
    NO

    Đầu vào:

    11
    39 3 1000 1000 1000 17
    233 456 789 543 123
    1000 999 888 777 666
    123 456 789 10 1
    2 100 200 50 20
    39 3 1000 1000 17
    10 1 1 2 1
    7 6 5 3 2
    1 2 3 4 5
    987 654 321 1000 10
    500 250 100 75 25

    Đầu ra:

    1
    NO
    631
    NO
    1
    NO
    93
    NO
    1
    NO
    0
    NO
    0
    NO
    1
    NO
    1
    NO
    241
    NO
    0
    NO

    Đầu vào:

    10
    2 100 200 50 20
    1000 999 888 777 666
    8 8 8 1000 512
    345 678 910 123 456
    234 345 456 567 78
    789 123 456 789 12
    678 234 456 789 90
    1 1000 1000 1 0
    1000 500 100 1000 75
    3 7 9 11 6

    Đầu ra:

    26
    NO
    0
    NO
    616
    NO
    40
    NO
    505
    NO
    618
    NO
    337
    NO
    0
    YES
    0
    NO
    8
    NO

    Đầu vào:

    14
    700 800 900 1000 500
    101 202 303 404 123
    333 222 111 1000 10
    10 20 30 40 50
    567 678 789 890 1
    432 543 654 765 234
    876 987 123 456 789
    321 654 987 1 1
    123 345 567 789 0
    234 567 890 100 50
    1 1 1 1 1
    789 456 123 321 100
    654 987 321 123 50
    987 654 321 1 0

    Đầu ra:

    0
    NO
    1
    NO
    609
    NO
    0
    NO
    199
    NO
    514
    NO
    144
    NO
    0
    NO
    297
    NO
    76
    NO
    0
    NO
    1
    NO
    4
    NO
    0
    YES

    Đầu vào:

    10
    444 555 666 777 123
    12 24 36 48 123
    345 678 910 123 456
    678 234 456 789 90
    1 2 3 4 5
    9 9 9 9 9
    500 400 300 200 123
    789 123 456 789 12
    234 345 456 567 78
    888 777 666 555 444

    Đầu ra:

    1
    NO
    0
    NO
    40
    NO
    337
    NO
    1
    NO
    0
    NO
    0
    NO
    618
    NO
    505
    NO
    184
    NO

    Chủ đề

    🧮 Cấu trúc dữ liệu & Giải thuật🔧 CCNumber TheoryTất cả môn học

    Đang tải editor...