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

Fillomino 2

Đề bài

Mô tả

Cho một bàn cờ kích thước n×n. Các hàng được đánh số từ 1 đến n từ trên xuống dưới, các cột được đánh số từ 1 đến n từ trái sang phải. Ô tại giao của hàng x và cột y được ký hiệu (x,y). Đường chéo chính của bàn cờ là tập hợp các ô (x,x) với 1xn.

Trên đường chéo chính được ghi sẵn một hoán vị của tập {1,2,,n}: ô (i,i) chứa số pi. Bạn cần chia tất cả các ô nằm dưới và trên đường chéo chính (tổng cộng có 1+2++n ô) thành n vùng thỏa mãn:

  1. Mỗi vùng phải liên thông theo 4-hướng (lên, xuống, trái, phải).
  2. Với mọi 1xn, vùng thứ x phải chứa ô đường chéo có giá trị x (tức là ô (i,i) sao cho pi=x).
  3. Với mọi 1xn, vùng thứ x có đúng x ô.
  4. Mỗi ô nằm dưới hoặc trên đường chéo chính thuộc về đúng một vùng.

Có thể chứng minh rằng với mọi hoán vị p luôn tồn tại cách chia hợp lệ.

Dữ liệu vào

  • Dòng đầu tiên chứa một số nguyên n — kích thước của bàn cờ.
  • Dòng thứ hai chứa n số nguyên p1,p2,,pn — hoán vị trên đường chéo chính.

Dữ liệu ra

Nếu không tồn tại cách chia hợp lệ, in ra 1.

Ngược lại, in ra n dòng. Dòng thứ i chứa i số nguyên; số thứ j trên dòng đó là giá trị x nếu ô (i,j) thuộc vùng có x ô.

Nếu có nhiều cách chia hợp lệ, bạn có thể in ra cách bất kỳ.

Ràng buộc

  • 1n500.
  • p1,p2,,pn là một hoán vị của {1,2,,n}.

Ví dụ

Input Output Giải thích
3
2 3 1
2
2 3
3 3 1
Vùng 1 gồm ô (3,3). Vùng 2 gồm hai ô (1,1)(2,1). Vùng 3 gồm ba ô (2,2), (3,1), (3,2).
5
1 2 3 4 5
1
2 2
3 3 3
4 4 4 4
5 5 5 5 5
Mỗi vùng x chiếm trọn một hàng có x ô, vừa đủ để vùng x chứa ô đường chéo (x,x).

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