Ổ khóa ngọc

Đề bài

Mô tả

Một ổ khóa hình vuông có 4 ô lõm xếp thành lưới 2×2. Bạn cần đặt vào mỗi ô một viên ngọc mang một chữ số. Có 9 viên ngọc mang các chữ số từ 1 đến 9 (mỗi chữ số xuất hiện đúng một lần), nên bốn viên ngọc được chọn phải mang các chữ số đôi một khác nhau.

Gọi lưới cần điền là:

abcd

Trên viền của ổ khóa có ghi 6 số nguyên, quy định các tổng phải khớp:

  • r1,r2: tổng của hàng trên và hàng dưới, tức a+b=r1c+d=r2.
  • c1,c2: tổng của cột trái và cột phải, tức a+c=c1b+d=c2.
  • d1,d2: tổng của đường chéo chính và đường chéo phụ, tức a+d=d1b+c=d2.

Hãy tìm cách đặt bốn viên ngọc thỏa mãn tất cả các điều kiện trên, hoặc cho biết không tồn tại.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên r1r2.
  • Dòng thứ hai chứa hai số nguyên c1c2.
  • Dòng thứ ba chứa hai số nguyên d1d2.

Dữ liệu ra

Nếu tồn tại cách đặt hợp lệ, in ra hai dòng, mỗi dòng hai số nguyên trong khoảng từ 1 đến 9 mô tả lưới điền được. Nếu không tồn tại, in ra một số 1 duy nhất.

Nghiệm nếu có là duy nhất.

Ràng buộc

  • 1r1,r2,c1,c2,d1,d220

Ví dụ

Input Output Giải thích
3 7
4 6
5 5
1 2
3 4
Lưới 1234: hàng 1+2=3, 3+4=7; cột 1+3=4, 2+4=6; chéo 1+4=5, 2+3=5. Tất cả khớp.
11 10
13 8
5 16
4 7
9 1
Bốn chữ số 4,7,9,1 khác nhau và mọi tổng hàng/cột/chéo đều đúng.
1 2
3 4
5 6
-1 Không có bộ bốn chữ số phân biệt nào từ 1 đến 9 thỏa mọi ràng buộc.
10 10
10 10
10 10
-1 Muốn mọi tổng bằng 10 thì cần bốn viên ngọc cùng bằng 5, nhưng mỗi chữ số chỉ có một viên.

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