trang chủ / đề bài / dhbb18_alpha

Siêu máy tính

Đề bài

Mô tả

Công ty Alpha giới thiệu siêu máy tính có khả năng thực hiện được tỉ tỉ phép toán trong vòng 1 giây. Để chứng minh sức mạnh của siêu máy tính, công ty đã cho máy tính thực hiện một số lượng rất lớn các phép toán như sau:

  • Ban đầu, số N được đặt giá trị bằng 1;
  • Có t thao tác, mỗi thao tác thuộc một trong ba loại:
    1. Nhân N với ab;
    2. Chia N cho ab (trong đó ab là ước của N);
    3. Tìm hai số nguyên dương p,q mà pq=N và q là lớn nhất; nếu N=1 thì p=1,q=1.

Công ty sẽ trao thưởng cho người nào kiểm chứng được kết quả mà siêu máy tính đưa ra. Nhận thấy, các thí sinh tham gia kỳ thi Duyên Hải năm 2018 có thể kiểm chứng được, do đó, Ban giám khảo kỳ thi quyết định ra đề thi yêu cầu thí sinh viết chương trình nhận t thao tác, nhưng với mỗi thao tác loại 3 chỉ cần đưa ra hai số pmodM (phần dư của phép chia p cho M) và q.

Yêu cầu: Cho M và t thao tác, với mỗi thao tác loại 3 hãy đưa ra hai số pmodM và q.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên dương M,t (M≤109; t≤105);
  • Dòng thứ i trong t dòng tiếp theo mô tả thao tác thứ i theo khuôn dạng: bắt đầu là số ki (ki bằng 1 hoặc 2 hoặc 3). Nếu là thao tác loại 1 và loại 2 thì tiếp theo là hai số nguyên dương ai,bi (ai,bi≤106). Nếu là thao tác loại 3 thì không có thêm dữ liệu.

Dữ liệu đảm bảo ở mỗi thao tác loại 2, aibi là ước của N hiện tại, và có ít nhất một thao tác loại 3.

Dữ liệu ra

In ra một số dòng, mỗi dòng chứa hai số pmodM và q tìm được, tương ứng với các thao tác loại 3 theo thứ tự xuất hiện.

Ràng buộc

  • 1≤M≤109; 1≤t≤105;
  • ki∈{1,2,3}; 1≤ai,bi≤106.

Subtasks

  • Có 20% số test ứng với 20% số điểm của bài có t≤100 và số N không vượt quá 1018 trong quá trình thực hiện dãy thao tác;
  • Có 40% số test khác ứng với 40% số điểm của bài có t≤100 và số N không vượt quá 10180 trong quá trình thực hiện dãy thao tác;
  • Có 40% số test còn lại ứng với 40% số điểm còn lại của bài có t≤105.

Ví dụ

Input Output Giải thích
100 4
1 36 2
3
2 3 2
3
6 4
12 2
Sau thao tác 1: N=362=1296=64, nên p=6, q=4. Sau thao tác 3: N=1296/32=144=122, nên p=12, q=2.
7 5
3
1 12 3
3
2 12 3
3
1 1
5 3
1 1
Ví dụ bổ sung (không có trong đề gốc). Khi N=1 thì p=1,q=1. Sau thao tác 2: N=123, nên p=12, q=3 và in ra 12mod7=5. Thao tác 4 đưa N về 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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0