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

Số Lớn Và Số Dư

Đề bài

Mô tả

Cho một số nguyên dương rất lớn N, được cho dưới dạng xâu các chữ số (không có chữ số 0 ở đầu).

Xét tất cả các phép dịch vòng của N (coi N như một xâu): một phép dịch vòng lấy một số chữ số ở đầu chuyển xuống cuối mà vẫn giữ thứ tự vòng tròn. Một phép dịch vòng được gọi là hợp lệ nếu kết quả là một số nguyên không có chữ số 0 đứng đầu.

Ví dụ, với số 10203 các dịch vòng hợp lệ là chính nó 10203, cùng với 2031031020.

Cho số m. Hãy tìm số dư nhỏ nhất khi chia một dịch vòng hợp lệ bất kỳ của N cho m.

Dữ liệu vào

  • Dòng thứ nhất chứa số nguyên N (cho dưới dạng xâu chữ số, không có chữ số 0 đứng đầu). Độ dài của N từ 2 đến 200000 chữ số.
  • Dòng thứ hai chứa số nguyên m.

Dữ liệu ra

In ra một số nguyên duy nhất là số dư nhỏ nhất có thể nhận được khi chia một dịch vòng hợp lệ của N cho m.

Ràng buộc

  • 2 số chữ số của N200000.
  • 2m108.

Ví dụ

Input Output Giải thích
521
3
2 Các dịch vòng hợp lệ của 521521, 215, 152 — đều có số dư 2 khi chia cho 3.
1001
5
0 Chỉ có hai dịch vòng hợp lệ: 1001 (số dư 1) và 1100 (số dư 0). Các dịch khác bắt đầu bằng chữ số 0 nên không hợp lệ.
5678901234567890123456789
10000
123 Dịch vòng cho số dư nhỏ nhất khi chia cho 10000123.

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