#HK5399. 「ROI 2014 Day 2」健康饮食

「ROI 2014 Day 2」健康饮食

题目描述

译自 ROI 2014 Day2 T3. Здоровое питание

某大学的学生园区是一个 n×nn \times n 的正方形网格,每个格子内都有一座建筑。相邻格子(即有公共边的格子)内的建筑通过通道相连。左上角的格子是学生宿舍,右下角的格子是教学楼。

园区内每座建筑(包括学生宿舍和教学楼)都有一台自动售货机,每台售货机只出售一种产品,例如只卖咖啡或只卖肉馅饼。学生每天从宿舍走到教学楼,选择一条最短路径通过通道前往。

大学管理层关注学生在沿途购买食物时的饮食多样性。对于每台售货机 Ai,jA_{i,j},计划找到一条从宿舍到教学楼的最短路径,该路径经过这台售货机,并且包含尽可能多出售与 Ai,jA_{i,j} 相同产品的售货机。这条路径上出售相同产品的售货机数量称为售货机 Ai,jA_{i,j}冗余度。其中,售货机 A1,1A_{1,1} 位于宿舍,售货机 An,nA_{n,n} 位于教学楼。

你需要编写一个程序,根据售货机出售的产品信息,计算出从 112n12n-1 的每个冗余度值对应的售货机数量。

输入格式

输入文件的第一行包含一个整数 nn (2n1500)(2 \leq n \leq 1500)

接下来的 nn 行,每行包含 nn 个数字。第 ii 行第 jj 个数字表示售货机 Ai,jA_{i,j} 出售的产品编号。产品编号的范围为 11n2n^2

输出格式

输出文件应包含 2n12n-1 个整数,分别表示冗余度为 1,2,,2n11, 2, \ldots, 2n-1 的售货机数量。

3
1 1 1
2 2 2
3 3 3

0 0 9 0 0

5
1 4 1 3 5
2 1 4 1 2
5 1 1 4 5
3 5 1 1 2
4 3 5 1 1

2 4 9 0 0 1 1 8 0

数据范围与提示

本题包含 5050 个独立测试点,每个测试点价值 22 分,总分为 100100 分。测试点的评分是独立的,具体限制条件如下表所示:

测试点 nn 测试点 nn 测试点 nn 测试点 nn 测试点 nn
11 22 1111 5050 2121 200200 3131 550550 4141 10501050
22 44 1212 6060 2222 225225 3232 600600 4242 11001100
33 66 1313 7070 2323 250250 3333 650650 4343 11501150
44 88 1414 8080 2424 275275 3434 700700 4444 12001200
55 1010 1515 9090 2525 300300 3535 750750 4545 12501250
66 1515 1616 100100 2626 325325 3636 800800 4646 13001300
77 2020 1717 120120 2727 350350 3737 850850 4747 13501350
88 2525 1818 140140 2828 400400 3838 900900 4848 14001400
99 3030 1919 160160 2929 450450 3939 950950 4949 14501450
1010 4040 2020 180180 3030 500500 4040 10001000 5050 15001500