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

Boomerang nảy

Đề bài

Mô tả

Cho một lưới n×n ô vuông. Hàng được đánh số từ 1 đến n tính từ trên xuống dưới, cột được đánh số từ 1 đến n tính từ trái sang phải. Trên lưới có một số mục tiêu, mỗi hàng và mỗi cột chứa không quá 2 mục tiêu.

Với mỗi cột, ta thả một quả boomerang từ phía dưới lưới (ngay dưới cột đó) bay thẳng lên trên. Khi boomerang đập vào một mục tiêu, nó nảy ra và quay 90 độ sang phải, rồi tiếp tục bay theo hướng mới cho đến khi đập trúng mục tiêu khác hoặc bay ra khỏi lưới. Boomerang có thể đập trúng nhiều mục tiêu và chỉ dừng lại khi ra khỏi lưới.

Boomerang ở cột i đập trúng đúng ai mục tiêu trước khi ra khỏi lưới. Biết rằng ai3.

Tuy nhiên, vị trí ban đầu của các mục tiêu đã bị mất. Hãy dựng lại một cấu hình mục tiêu hợp lệ phù hợp với số lần đập của mỗi cột, hoặc thông báo rằng không tồn tại cấu hình nào. Nếu có nhiều cấu hình hợp lệ, in ra bất kỳ cấu hình nào.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n (1n105).
  • Dòng thứ hai chứa n số nguyên a1,a2,,an (0ai3).

Dữ liệu ra

Nếu không tồn tại cấu hình hợp lệ, in 1.

Ngược lại, dòng đầu in một số nguyên t (0t2n) là số mục tiêu trong cấu hình.

Sau đó in t dòng, mỗi dòng chứa hai số nguyên rc (1r,cn) cho biết mục tiêu nằm ở hàng r và cột c. Tất cả các mục tiêu phải khác nhau. Mỗi hàng và mỗi cột trong cấu hình chứa không quá 2 mục tiêu.

Ràng buộc

  • 1n105
  • 0ai3

Ví dụ

Input Output Giải thích
1
0
0 n=1, a1=0 — không cần đặt mục tiêu nào.
6
2 0 3 0 1 1
5
5 1
3 3
3 6
5 5
6 6
Boomerang cột 1: đập (5,1) → sang phải, đập (5,5) → xuống dưới, ra khỏi lưới. Tổng 2 lần. Boomerang cột 3: đập (3,3) → đập (3,6) → đập (6,6) → ra khỏi lưới. Tổng 3 lần. Cột 5 đập (5,5), cột 6 đập (6,6), mỗi cột 1 lần.
6
3 2 2 2 1 1
-1 Không tồn tại cấu hình thỏa mã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