Tòa nhà chọc trời
Nộp bài giải
Điểm:
5,00 (OI)
Giới hạn thời gian:
2.0s
Python 3
5.0s
Giới hạn bộ nhớ:
256M
Đầu vào:
stdin
Đầu ra:
stdout
Dạng bài
Ngôn ngữ cho phép
Ada, Algol, Assembly, Awk, C, C#, C++, D, Dart, Forth, Fortran, Go, Groovy, Java, Javascript, Kotlin, Lisp, Lua, Nim, ObjC, Pascal, Perl, PHP, Pike, Python, Racket, Ruby, Rust, Scheme, Scratch, Sed, TCL, Typescript, V, Zig
Cho một thành phố hình lưới có đường ngang (Đông) và đường dọc (Nam). Tại giao điểm của đường ngang thứ và đường dọc thứ có một tòa nhà chọc trời chiều cao .
Tại mỗi giao điểm , ta xét đường ngang thứ và đường dọc thứ — gồm tòa nhà. Cần gán lại chiều cao cho tòa nhà này, mỗi tòa được gán một số nguyên dương từ đến , sao cho:
- Trong đường ngang thứ : thứ tự so sánh (lớn hơn / nhỏ hơn / bằng nhau) giữa hai tòa nhà bất kỳ được giữ nguyên so với chiều cao gốc.
- Trong đường dọc thứ : thứ tự so sánh giữa hai tòa nhà bất kỳ cũng được giữ nguyên.
- Giữa một tòa trên đường ngang và một tòa trên đường dọc (mà không phải là giao điểm) thì không có ràng buộc.
Với mỗi giao điểm , tìm giá trị nhỏ nhất có thể.
Dữ liệu vào
Dòng đầu tiên chứa hai số nguyên và .
dòng tiếp theo, mỗi dòng chứa số nguyên — chiều cao các tòa nhà.
Dữ liệu ra
In ra dòng, mỗi dòng chứa số nguyên: giá trị nhỏ nhất tại mỗi giao điểm.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 2 2 1 2 3 4 |
2 3 3 2 |
Tại : ba tòa ở dòng 1 (giá trị ) và cột 1 (giá trị ) — nén còn cần . Tại : dòng 1 có , cột 2 có , đỉnh chung là — cần . |
| 2 3 1 2 1 2 1 2 |
2 2 2 2 2 2 |
Mỗi hàng và mỗi cột chỉ có giá trị phân biệt, nên không thể giảm xuống dưới tại bất kỳ giao điểm nào. |
Bình luận