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

Cuộc thi trên bậc thang

Đề bài

Mô tả

Cho ma trận vuông n×n với các dòng đánh số từ 1 đến n từ trên xuống và các cột đánh số từ 1 đến n từ trái sang. Đường chéo phụ là đường chéo đi từ ô góc trên bên phải (1,n) tới ô góc dưới bên trái (n,1), tức là gồm các ô (i,n+1i) với 1in.

Bậc thang cấp n là ma trận vuông n×n sau khi bỏ đi mọi ô nằm phía trên đường chéo phụ. Nói cách khác, ô (r,c) thuộc bậc thang khi và chỉ khi r+cn+1.

Trên bậc thang cấp nm vận động viên đứng ở m ô đôi một khác nhau. Mỗi vận động viên cần một giây để di chuyển sang một ô kề cạnh của bậc thang. Trước khi cuộc thi bắt đầu, mỗi vận động viên phải chọn cho mình một trong các đường đi ngắn nhất từ ô đang đứng tới đường chéo phụ.

Sau tiếng còi xuất phát, tất cả vận động viên đồng loạt di chuyển theo đường đã chọn. Khi một vận động viên tới được một ô của đường chéo phụ, người đó dừng lại và không di chuyển nữa. Cuộc thi kết thúc khi mọi vận động viên đều đã tới đường chéo phụ.

Cuộc thi được xem là thành công nếu trong suốt quá trình đó không có thời điểm nào hai vận động viên cùng đứng trên một ô; mỗi ô của đường chéo phụ cũng không được chứa quá một người. Nếu tại một thời điểm một vận động viên rời khỏi một ô và ngay lúc đó một vận động viên khác đi vào ô đấy thì không bị coi là cùng đứng trên một ô. Các tình huống trớ trêu khác (chẳng hạn hai vận động viên đi ngược chiều nhau) là không thể xảy ra, vì mọi đường đi đều là đường đi ngắn nhất.

Hãy chọn ra nhiều vận động viên nhất có thể sao cho tồn tại cách chọn đường đi ngắn nhất cho họ để cuộc thi thành công. Những vận động viên không được chọn sẽ bị loại khỏi bậc thang trước khi cuộc thi bắt đầu.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nm.
  • m dòng tiếp theo, dòng thứ i chứa hai số nguyên rici là toạ độ ô mà vận động viên thứ i đang đứng.

Dữ liệu ra

  • Dòng đầu in ra k là số vận động viên được chọn.
  • Dòng thứ hai in ra k chỉ số của các vận động viên được chọn theo thứ tự bất kỳ, cách nhau bởi dấu cách. Các vận động viên được đánh số từ 1 theo thứ tự xuất hiện trong dữ liệu vào.

Nếu có nhiều đáp án, in ra đáp án bất kỳ.

Ràng buộc

  • 1n,m105
  • 1ri,cinnci<ri
  • Không có hai vận động viên đứng trên cùng một ô

Ví dụ

Input Output Giải thích
3 3
2 3
3 2
3 3
3
1 2 3
Đường chéo phụ gồm ba ô (1,3), (2,2), (3,1). Chọn được cả ba người: người 1 đi (2,3)(1,3), người 3 đi (3,3)(2,3)(2,2), người 2 đi (3,2)(3,1). Ở giây thứ nhất người 1 rời ô (2,3) đúng lúc người 3 bước vào, nên không bị tính là trùng ô.
2 3
1 2
2 2
2 1
2
1 2
Đường chéo phụ chỉ có hai ô (1,2)(2,1), nên nhiều nhất hai người có thể về đích. Chọn người 1 (đã đứng sẵn ở (1,2)) và người 2 đi (2,2)(2,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 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