Hai túi số

Đề bài

Mô tả

Cho số nguyên M và một tập A gồm N số nguyên phân biệt nằm trong {0,1,,M1}. Gọi B là phần bù của A, tức B={0,1,,M1}A. Vì MN+1 nên B luôn khác rỗng.

Ta chọn một số a bất kì thuộc A và một số b bất kì thuộc B, rồi tính giá trị (a+b)modM.

Hãy tìm tất cả các số dư trong {0,1,,M1} không thể thu được bằng cách trên.

Dữ liệu vào

  • Dòng đầu tiên chứa hai số nguyên NM.
  • Dòng thứ hai chứa N số nguyên a1,a2,,aN theo thứ tự tăng dần, là các phần tử của A.

Dữ liệu ra

  • Dòng đầu tiên in ra K là số lượng số dư không thể thu được.
  • Nếu K>0, dòng thứ hai in ra K số dư đó theo thứ tự tăng dần, cách nhau bởi dấu cách. Nếu K=0 thì không in dòng thứ hai.

Ràng buộc

  • 1N200000
  • N+1M109
  • 0a1<a2<<aN<M

Ví dụ

Input Output Giải thích
2 5
3 4
1
2
A={3,4}, B={0,1,2}. Các tổng thu được là 3+03, 3+14, 3+20, 4+04, 4+10, 4+21. Tập thu được là {0,1,3,4}, chỉ thiếu số dư 2.
2 4
1 3
2
0 2
A={1,3}, B={0,2}. Bốn tổng là 1,3,3,1 (theo modulo 4), nên chỉ thu được {1,3} và thiếu cả 0 lẫn 2.
4 1000000000
5 25 125 625
0 A chỉ có 4 phần tử còn B chứa mọi số còn lại nhỏ hơn 109. Với mỗi số dư c, luôn tồn tại aA sao cho (ca)mod109A, nên mọi số dư đều thu được và K=0.

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.400 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.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0