LQDOJ Cup 2023 - Round 3 - Formation

Xem PDF




Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 2200 (p) Thời gian: 3.0s Bộ nhớ: 1G Input: formation.inp Output: formation.out

Ngày hôm nay, các chiến sĩ thuộc Đại đội 9 đang tập luyện tập hợp đội hình trên thao trường. Thao trường có khuôn viên là một hình chữ nhật gồm \(r\) hàng và \(c\) cột. Các hàng được đánh số từ trên xuống dưới từ \(1\) tới \(r\) và các cột được đánh số từ trái sang phải từ \(1\) tới \(c\). Giao của hàng \(i\) và cột \(j\) sẽ là ô vuông có tọa độ \((i, j)\). Ta định nghĩa khoảng cách giữa hai ô \((x, y)\)\((u, v)\) sẽ bằng \(|x - u| + |y - v|\). Hiện tại, trên mỗi ô vuông sẽ có tối đa 1 chiến sĩ đang đứng. Một đội hình sẽ cần có đúng \(k\) chiến sĩ. Khi phát hiệu lệnh tập trung đội hình tại một ô \((x, y)\) nào đó, \(k\) chiến sĩ có khoảng cách từ ô đang đứng tới ô \((x, y)\) là ngắn nhất sẽ di chuyển tới ô này (tính cả chiến sĩ đang đứng tại ô \((x, y)\) nếu có). Thời gian di chuyển của một chiến sĩ sẽ đúng bằng khoảng cách giữa hai ô.

Yêu cầu: Với mỗi ô \((x, y)\) nằm trong khuôn viên của thao trường, hãy tính tổng thời gian di chuyển của \(k\) chiến sĩ sẽ thực hiện xếp đội hình nếu ta phát hiệu lệnh tập trung tại ô này.

Input

  • Dòng đầu tiên chứa ba số nguyên \(r\), \(c\)\(k\) \((1 \leq r, c \leq 2000, 1 \leq k \leq r \times c)\) lần lượt là số hàng, số cột của khuôn viên thao trường và số lượng chiến sĩ cần để tập hợp đội hình.
  • Trong \(r\) dòng tiếp theo, dòng thứ \(i\) chứa \(c\) số nguyên \(a_{i, 1}, a_{i, 2}, \ldots, a_{i, c}\) \((0 \leq a_{i,j} \leq 1)\). Trong đó \(a_{i, j} = 1\) có nghĩa là có một chiến sĩ đứng tại ô \((i,j)\), ngược lại thì không.
  • Dữ liệu đảm bảo số lượng chiến sĩ đang có trên thao trường sẽ không nhỏ hơn \(k\).

Output

  • Để giảm kích thước dữ liệu đầu ra, gọi \(ans(x,y)\) là tổng thời gian di chuyển của \(k\) chiến sĩ sẽ thực hiện xếp đội hình nếu ta phát hiệu lệnh tập trung tại ô \((x, y)\), hãy in ra một số duy nhất là \(\sum\limits_{x = 1}^{r}\sum\limits_{y = 1}^{c}ans(x, y)\), hay nói cách khác là tổng tất cả \(ans(x, y)\) với mọi \(1 \leq x \leq r\)\(1 \leq y \leq c\).

Scoring

  • Subtask \(1\) (\(20\%\) số điểm): \(r, c \leq 50\).
  • Subtask \(2\) (\(10\%\) số điểm): \(r, c \leq 300, k = 1\).
  • Subtask \(3\) (\(20\%\) số điểm): \(r, c \leq 300\).
  • Subtask \(4\) (\(20\%\) số điểm): \(r, c \leq 1000\).
  • Subtask \(5\) (\(10\%\) số điểm): \(k = 1\).
  • Subtask \(6\) (\(20\%\) số điểm): Không có ràng buộc gì thêm.

Example

Test 1

Input
3 3 2
0 0 1
1 1 0
0 1 0
Output
17
Note

Tổng thời gian di chuyển tương ứng của từng vị trí là:

3 2 2
1 1 2
2 1 3

Tổng của các số trên là \(17\).

Test 2

Input
5 6 3
1 0 0 1 0 1
0 1 1 0 1 0
0 0 1 0 1 0
1 0 0 1 1 1
0 0 0 1 0 1
Output
114
Note

Tổng thời gian di chuyển tương ứng của từng vị trí là:

5 4 4 4 3 4
4 3 2 3 3 4
5 4 3 3 2 4
6 5 4 2 2 2
8 7 5 3 3 3

Tổng của các số trên là \(114\).

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: