Tổng khối đồ chơi

Đề bài

Mô tả

Có đúng s=106 khối đồ chơi, mỗi khối mang một số hiệu khác nhau từ 1 đến s.

Thầy giáo đã lấy đi một tập con X gồm n khối và chỉ trả lại nếu bạn chọn được một tập con khác rỗng Y từ những khối còn lại sao cho

∑x∈X(x−1)=∑y∈Y(s−y)

Hai tập X và Y không được có phần tử chung, tức là xi≠yj với mọi i,j.

Dữ liệu bảo đảm luôn tồn tại ít nhất một tập Y thỏa mãn. Nếu có nhiều đáp án, in ra bất kỳ đáp án nào.

Kích thước dữ liệu vào và ra khá lớn, hãy dùng phương thức nhập/xuất nhanh.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n, số lượng khối trong tập X.
  • Dòng thứ hai chứa n số nguyên phân biệt x1,x2,…,xn, số hiệu các khối trong X.

Dữ liệu ra

  • Dòng đầu in số nguyên m, số lượng khối trong tập Y.
  • Dòng thứ hai in m số nguyên phân biệt y1,y2,…,ym.

Ràng buộc

  • s=106
  • 1≤n≤5·105
  • 1≤xi≤106, các xi đôi một phân biệt
  • 1≤m≤106−n và 1≤yj≤106

Ví dụ

Input Output Giải thích
1
1
1
1000000
Vế trái bằng 1−1=0. Chọn Y={106} cho vế phải 106−106=0.
3
1 4 5
3
1000000 999997 999996
Vế trái bằng (1−1)+(4−1)+(5−1)=7. Vế phải bằng (106−106)+(106−999997)+(106−999996)=0+3+4=7.
4
1 2 999999 1000000
4
3 999998 4 999997
Ở đây 1 và 106 đều bị lấy, 2 và 999999 cũng vậy, nên phải bù bằng hai cặp còn nguyên vẹn là {3,999998} và {4,999997}.

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