Dựng test cho ma trận m-tự do

Đề bài

Mô tả

Một ma trận nhị phân (chỉ gồm các phần tử 01) kích thước n×n được gọi là m-tự do nếu mọi ma trận con vuông kích thước m×m của nó chứa ít nhất một số 0.

Xét bài toán sau: cho hai số nguyên dương nm, hãy dựng một ma trận m-tự do kích thước n×n sao cho số lượng số 1 là lớn nhất có thể, và in ra số lượng số 1 đó.

Bạn không phải giải bài toán trên. Thay vào đó, bạn cần tạo test cho nó.

Cho t số nguyên x1,x2,,xt. Với mỗi xi, hãy tìm hai số nguyên nimi (1mini109) sao cho đáp án của bài toán trên với n=nim=mi đúng bằng xi. Nếu có nhiều bộ (ni,mi) thỏa mãn, in ra bất kỳ bộ nào. Nếu không tồn tại bộ nào, in ra 1.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t — số lượng test cần tạo.
  • t dòng tiếp theo, dòng thứ i chứa số nguyên xi.

Dữ liệu ra

Với mỗi xi, in ra hai số nguyên dương nimi trên cùng một dòng, hoặc in ra 1 nếu không tồn tại.

Ràng buộc

  • 1t100
  • 0xi109
  • 1mini109

Ví dụ

Input Output Giải thích
3
21
0
1
5 2
1 1
-1
Với x=21: ma trận 5×5 với ràng buộc 2-tự do có tối đa 21 số 1. Với x=0: ma trận 1×1 với m=1 buộc phải là 0, có 0 số 1. Với x=1: không tồn tại (n,m) nào cho đáp án đúng bằng 1.
1
5704
77 5 Ma trận 77×77 với ràng buộc 5-tự do có tối đa 5704 số 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.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 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