[本校测试] 魔王的消失Day2——By Hineven T3葬诗 提交答案题(爬山算法)
葬诗
Unconventional Problem / 非传统题目
题目描述
现有一段长文本 P 和一个某些位置能摆放按键的 100*100 大小网格状键盘基座,你需要将 1 到 500 共 500 个不同字符的按键安置在键盘上,最小化一根手指操作键盘输入 P 时指尖的水平移动距离。
注意,指尖必须移动到按键中心才能按下按键,按下按键产生的竖直移动距离不计入答 案,键盘基座是一个完美的正 100*100 网格,网格的每一小格都是长宽均为 1 的标准正方 形
输入文件
本题下发文件包含了键盘基座描述文件 keyboard,文本文件 P。
文本文件 P 即为题目描述中提到的 P,包含了超过五百万个大于等于 1 小于等于 500 的 整数,每个整数 c 表示一个编号为 c 的字符。
你可以根据 P 的特征设计你的键盘。
键盘基座描述文件 keyboard 包含一个 100*100 的字符网格,第 i 行第 j 列的字符表示 键盘基座上格点(i,j)的状态,若该字符为空格(‘ ’)则表示该格点可以放置按键,否然不能放置按键。
答案格式与提交方式
你的答案应被命名为 answer(没有扩展名),answer 应该是一个文本文档,包含 100 行 文本,每一行包含 100 个整数。 位于第 i 行第 j 列的整数 c 如果为 0,则表示键盘格点(i,j)不放置按键,否然则表示 格点(i,j)放置能输入第 c 种字符的按键。 本题下发了一个样例答案 sample_answer,该答案虽然不优但合法,你可以参考该答案 了解答案应有的格式。 本题也下发有评分器 grader.cpp。将 grader.cpp 编译为 grader.exe 并将文本文件 P 与其置于同一目录下,可以使用命令‘grader < answer’来查看你答案的得分。若 grader 崩溃,该答案得 0 分。否然 grader 将会给出答案的得分,该得分与正式评测时的实际得分 一致。 提交答案时,你只需要提交一个合法的 answer 文件即可。
题目的意思应该不用解释了。。。
(蒟蒻并不知道如何添加下载地址,所以把与题解有关的文件直接贴了出来)
接下来准备好护目镜:
keyboard:
@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@ @@@@ @@@@@@@@ @@@@@ @@@@@@ @@@@
@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@ @@@@@@@@@@ @@@@ @ @@@@@@ @ @@@ @ @@@@@ @@@@@ @@@@@@@@@@ @
@@@@@@@@@@@ @@ @@ @@ @@@@ @@@@@@ @@@@@@@@@@@@ @@@ @@@ @ @@@@@ @ @@@@@@@@@@ @ @@@@@@@@@@@ @@ @@@@@@
@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@ @@@@ @@@@@@@@@@@@@@@@ @ @@@@@@@@ @ @@@@@ @@ @@@@@@@@ @@@@@
@@@@@@@@@@@ @ @@@@@ @@@ @@@@@@@@@@@@@@ @@@@ @@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@ @@@@@ @@@ @@@@@ @
@@@@@@@@@@@@@ @@@@@@@ @@@@@@@@@@@@@@@@@@@@@@ @@@@@ @ @@@@@@ @@@ @ @@ @@@@@@@ @@ @@@@@@@@@@@@@@@@
@@@@ @@@@@@@@@@ @@@@@@@@@@ @@@ @@@@@ @@@@@@ @ @@@ @@ @@@@@@@@@ @@ @@ @@ @@ @@@@@@ @@ @@@@@@@@@@@ @@@@ @@@@@@@@ @@ @ @@ @@@ @@@ @@@@@@@@@@@@@@@@@ @@@@@@@@@@@ @@ @@@ @@@@@@ @@@ @@@ @ @@@@@@@@@@@
@@@ @@@@@@@@@@@@ @@@@@ @@@ @ @@ @@@@@@@@ @@@@@@ @@@@@ @ @@@@ @@@@@@ @@@@@@@@@@@@@@@@ @@@@@@@@@@@
@@@@@@@@@@@@@@@ @@ @@@@ @@@@@@@@ @@@@ @@@@@@ @@@@@ @ @@@@@ @@ @ @ @@@@ @ @@@@@@@@@@ @@@ @@@@@@@@
@@@@@@@@@@@ @@@@@@@@@@@@ @@@@@@@@@ @@@@@@@@@@@@@ @@@@@ @@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@ @@@@@@ @@
@@ @ @@@ @ @@@ @@@@ @@@@@@ @@@ @@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@ @@@@@@@@@@@
@@@@@@@ @@@@ @@@@@@ @@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @@@@ @@@ @@ @@ @@@@@@ @@@@@@@ @@@@@@@@@@@@@@@
@@@ @@@@@@ @@@ @@@@@@@@@@@ @ @ @@@ @ @@@ @@@@@@@@@@@@@@@@ @@@@@ @@ @@@@@@@@@@@@@@@@@@@ @@@@@@
@@@@ @@@@@@@ @@@@@@ @ @@@ @@@@@@ @@@ @@@@@@@@@@@@@@@@@@ @ @@ @@@@@@@ @@@@@ @@@@@@@@ @@ @@ @@
@@@@@@@@ @@@@@@@@@@@@@@ @ @@@@@@ @@@@@ @@@@@@@@@@@@@@@ @@@@ @@@@@ @@@@@@@@@@@@@@@@@ @@@@@@@@@@
@ @@@@@@@@@ @@@ @@@@@ @@@@@ @@@@@@@@@@ @@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@ @ @@
@@@@@@@@@@@@@ @@@@ @@@@@@@ @@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@ @@ @@@@@@@@@@@ @@@@@@@@@@@@@@
@@@@@@@@@ @ @@@@@@@@@@ @ @@@ @ @@ @@@@@@@ @@@ @@@@@@@@ @@@@@@@@ @@@ @@@@ @@@@@@@@ @@@@ @@@@@@
@@@@ @@@@@@@@@@@ @@@@@@@@@@@@ @@@ @ @@@@@@@ @@@@ @@ @ @@@@@@@@@ @@@@ @@@@@@@@@@@@@@@@@@@@@@ @ @@@
@@@@@@@@@ @ @ @ @@ @@@@@@@ @ @ @ @@@ @@@@@ @@@@@@@@@@@ @@ @ @@ @@ @@@@ @@@@@@@@@@@@@@@@ @@@@@
@@@@@@@@ @@@@@@@@@@@@@@@ @@@@ @@ @@@ @@@@ @ @@ @@ @@@@@@ @@ @@ @ @@ @@ @@@@@@@@@@@@@@@@@@@@@@@
@@@@@@ @@@@@ @ @@ @@@@@@ @@@ @ @@@@@ @ @@ @@@@@@@@@ @ @ @@@@ @@@@@@@@@@@@@@ @@@@@@
@@@@ @@@@@@@@@ @ @ @@ @@ @ @@@@@ @@ @ @ @@@ @ @@ @@@ @ @ @@@ @@@@ @@@ @ @@@
@@@ @@@@@@@ @@ @@@@@@@@@@@ @@@@ @@@ @@@@ @@ @@ @ @@@@@ @ @@ @@@@@@ @@@@ @@@@@@
@@@@@@@ @@@ @@@@@ @@@ @ @@ @@@@ @@@@ @@@@ @@ @@@ @@@ @ @@ @ @ @@@@@ @@ @@@@@
@@@@@@@@@@ @ @@@ @@@@@@@@@ @@@@@@@@@ @ @@@@@@ @@@@@@ @ @ @@@ @ @ @ @@@@ @@ @@@@@@@@@ @ @
@@ @@@@ @@@@@ @@@@@@@ @@@@ @@ @@@@@@@@@@@@@ @@@ @@@ @@@@@@@ @ @@@ @ @@@@@@@@@@ @
@@@@@@@@@ @@ @@ @@@@@@@@ @ @@ @@@@@@@ @@@@@ @@@ @@@@@ @@ @@ @@@@ @ @@@@@@@@@@ @@@
@@ @@@@@@ @ @ @@ @ @@ @@@@ @@ @@@@ @@@@@@ @@ @@@@@ @@@@@@@@@ @@@ @@@@ @@@ @@ @@@ @@@@ @ @@@@@ @@@@@ @ @@@ @@@@@@@ @@ @@@@ @@@@@@@@@@@@@@@@@ @@@@@@@@ @@ @@@ @ @@@ @@@@@@@@@@@@@@@
@@@@@@ @@@@@@ @@@ @@ @@ @ @@@@ @@@@@ @ @@ @@@@@@@@@@@ @ @@@ @ @@@ @@ @ @@@ @ @@ @@ @ @ @
@@@@@@@@ @@@@@@@ @@@@@ @@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@ @@@ @@ @@@@@@@@@@@@@@@@@@@@@@@@ @ @ @
@@@@@@ @ @@@@@@@@@@@ @ @ @@@@@ @ @@ @@ @@@@@@@@ @@@@@@@@ @@@ @ @ @@@ @@ @@@@@@ @@ @@@ @@ @ @@@@@@@@@@@ @@@@@@@@@ @@@@@@@@@@@ @@ @@@@@@@@@@@@ @@@@@@@@ @ @@@@ @@@@@ @@@@@@@@@@@@@@@@ @ @
@ @@@@ @ @@@@@ @@@@@ @ @@@@@@@@@@@ @@@ @@@@@@ @@@@ @@@@@@@@@@@ @@@@@ @@@ @@@ @@@@@ @@@ @ @@@
@@@@ @@@@@@@@@@@@@@@ @@@@ @@@@@@@@@@ @@@@@@@@@@@@ @ @@@@@@@@@@@@@@ @ @@ @@@@@@@@@@@@@@@@@@@@ @ @@@@@@@@@@@@ @@ @@@@@@@@@ @@@@@@@@@@@@ @@@@@ @@@ @@ @@@@@ @@@@@@@@@@ @@@@@@@@@@@@@@@@@@ @@@ @
@@@@ @@@@@@ @@@ @@@@@@@@ @@@@@ @@@@@ @ @@@@ @@@ @@@ @@@@@@@@@@@ @@@ @ @@@@@@@ @@@@@@@@@@@@ @@ @
@@@@@@@@@@@@@@@@@@ @@@@@@@@@ @@@@@@@ @@@ @@ @@@@@@@@@@@@@@@@@@@@@ @@@ @@@@@ @@ @ @@@@ @@@@
@@ @@@@ @@@@@@@@@@@@@@@@@@@@@ @@@ @ @@@@@@@@@@@@@@@ @@@@@@ @@@ @@@@ @@@@@ @@@@@@@@@ @@ @ @@@ @ @
@@@@ @@@@@@@ @@@@@@@@@@@ @@ @@@@@@@@@ @@@@ @@@@@@@@@@ @@@@@@@@ @ @@@ @@@@@ @@@ @@@@@ @@@@ @@ @@ @
@@@@@@@@ @@ @@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@ @@@@@@@@@@@@ @@@@@@@@@ @@
@@@ @@@@@@@@@ @@@@@@@@@@@@ @@@ @@@@ @@@@@@ @@@@@@@@@@ @@@ @@@@ @ @@@@@ @ @@@@ @@@@@@ @@@@ @ @
@ @@@@@@@@@@@@ @@@ @@ @@@@@ @@@@@@@@@ @ @@@@@@@@@@@@@@@ @@@@@@@ @@@@ @@@@@@ @@ @@ @@ @@ @@@@ @
@@@@@@@@@@@@ @@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@ @@@@@@@@@ @@@ @ @@@ @@@@@@@@@ @@@@@@@@@@@ @@@@ @@@@@@@ @@@@@@ @@ @@@@@@@ @ @@@ @@ @@@ @@@ @@@@@@ @@@@@@ @ @@@ @ @@@@@@ @@@@@ @@@@@@@@@@@ @ @@@@@
@@@@ @@@@ @ @@@@@@ @@@@ @ @@@@@@@@@@@@@@@@@@@ @@@@@@@@@ @@@@@@ @ @ @@@@@@@@@@@ @@@ @@ @@@@@ @@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@ @ @@@@@ @@@ @@ @ @@@@ @ @@@@@@ @@@ @@@@@ @@@ @@@@@@@@ @@@ @@@@
@@@@@ @@@ @@@@@@@ @@@@@@@@@@ @ @ @@@@ @@@@@@@@ @@@@@@@@@@@@@@ @@ @@ @@@ @@ @ @@@@@@ @@@@ @ @@@ @@
@ @@@@@@@@@ @@@@@@@@@@@@@ @@@@@ @@@@@@ @ @@@@@@@@@@@@@ @@@@@@@@@ @ @@@ @@ @ @@@@@@@@@@@@ @@ @ @@ @
@ @@@@@@ @@@@@@@@ @@@@@@@@@@@ @@@@@@@ @@@@@@@@ @ @@@@@@@@@@@@@@ @ @ @@@ @@@ @ @@@ @@@ @ @@@@@@@@@ @ @@ @@ @@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@ @@@@@@ @ @@@ @ @@ @ @@@@ @@@ @
@@@@ @@@@@@@@@@@@@@ @@@@@@@@ @@@@@@@@@@@@@@@ @@@@@ @ @ @@@@ @@@ @@@@@@@ @ @@@@ @@@@@@@ @@@@@ @ @@ @@@@@@@@@@ @@@@@@@@@@ @@ @@ @@@@@@@@@@@ @@@@@@@@@@@@@@@ @@ @@ @@@@@@@@ @@@@@ @@@@@@@ @ @ @@@@@@
@@ @@@@@@@ @@@ @@@@@@@@@@@ @@@@@@@@ @@@@@@@@@@@ @ @@@@@@@@ @@ @@@@@@ @@@ @ @@ @@ @ @ @ @ @ @ @@
@ @@@@@@@ @@@@@@@@@@@@@ @@@ @@@@@@ @@@@@@@ @@@@@@@ @@@@@@@@ @ @@@@@@@@@ @ @ @@@ @ @@@@@ @ @@ @
@ @@@@@@@@ @@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @@@@@@@@@@@@@@@ @@ @@@@ @@@@@@@@@@ @@@@
@@@@@ @ @@@@ @@ @@@@@ @@@@@@ @@@ @ @@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@ @@@@ @ @@@@@@@@@@ @@ @@@@@@ @@@@@@@@@@@ @@@ @@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@ @@@ @@@@@@@@@@@@@@ @@ @@@ @@@ @@ @@@ @@@@@@@@@@ @ @ @@@@ @ @@@ @ @@ @@@@@@@@@@@@@@@ @@@@@@@@@@@@ @@@@@@@@@ @@@@@@ @@@ @@@@@ @@@@@@@@@@@
@@@@@@@@@@@ @ @@@@@@@@@@@@ @@@@@@@@@@@@@ @@@@@@@@@ @@@@@@@@@@ @@@@@@ @ @ @@@@@ @@@@ @ @@@@ @ @@
@@@@@@@@@@@ @@@@@@@@@@@@@@ @@@@@@ @@@ @@@@@@@@@@@@@ @@ @@ @ @ @@@ @@@@@@@@@@@@@@@@@@@@@@@@
@@@ @@@@@@ @@@ @ @@@@@ @@@@@@@@@@@@@@@@@@@@ @@ @@@@@@ @@ @ @@@@ @@@@@@@@@@@@ @@@@ @@@
@@@ @@@@@@ @ @@@@@@@@@@@@@@@@@@ @@@@@@ @@@@@@@@ @@@@@@@@@@@@@@ @ @ @@@ @@@@@@@@@@@@@@ @
@@@@ @ @@@ @ @@ @@@@ @@@@ @@@@@@@ @@ @@@@@ @@@@ @@@@@@@@ @@@@ @@ @@ @@@@@@@@@@@ @@@@@@@@@@@
@@@@@@@@@ @ @ @@@@@@@@@ @@@@@@@@@@@ @@@@@@@@ @@@@@ @@@@@ @@@@@ @@ @ @@ @ @@@@@@@@@@@@@@ @@@@@
@@ @ @@@@ @@@@@@ @ @@@ @ @@ @@@@@@@@@@@@@@ @ @ @@@@@@@@@@ @@ @@@@@ @@@@ @ @ @@@@@ @ @@@@@@@@@@@
@ @ @@@@@@ @@@@@ @@@@ @@ @@@@ @ @@@@ @@ @@@ @@@ @@ @@@@ @@@@ @@@ @ @@@@@@@@@@ @@@@@@ @@@@ @@@@
@@@@@@@@@@@@ @ @@@@@ @@@ @@@ @@@@@@ @@ @@ @@@@@@@@@ @ @@@@@ @@ @@ @ @ @@@@ @@@@@@@ @@@ @ @@@
@@@@@@@ @@@@@@@@@@@@@@@ @@@@@ @ @ @@ @@ @ @@@@@@@@@ @ @@@ @@@@ @@ @ @@ @@@ @@@@@@@ @@@@@@@@@@
@@ @@@@@@@@@ @ @@@@@ @@@@@ @@@@ @ @@ @@@@@ @ @@@ @ @@ @ @ @ @@@ @@@@@@@ @@@@@@@@@@ @@@@ @@@
@@@@@@@ @@@@@@@@ @@ @@@@@@@ @@@@@ @@@@@@@ @@@ @@ @@@@@@ @@@@@ @ @ @ @ @@ @@@@@@ @ @@@@@@ @@@@@@@@@@ @@ @@@@@ @@ @@@ @@@ @ @@@ @ @@@@@@@@@@@@@@@@@ @@@ @ @@@@@@@@@@@@@@@@@@@@ @@@@@ @@
@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@ @@@ @ @@@@@@@@ @ @ @ @ @@@@@@@@@@@@@@@@
@@@@@@@@@@ @ @@ @ @@@@@@@@ @@@ @@@@@ @ @@@@@@@@@@@@ @@@@@@@ @@ @ @ @@@@ @ @@@@@ @@ @ @@@@@@@@@@@@
@@@ @@@ @@@@@@@@@@@@@@@@ @ @@@@@@@@@@ @@@@@@@@ @@ @@@ @@@@ @@ @@ @ @@@ @@@@@@@@@ @@@@@@@@@@@@@@@
@@@@@@@@@@@@ @ @@@@@@@ @@@@@ @@ @@@ @@@@@@@ @@@@@ @@ @@@@@@@ @ @@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@ @
@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @@ @@@@@@ @ @ @@@@@@ @@@@@@@ @@@@@@@@@ @@@@@
@@@@@@@@@@ @ @@@@ @ @@@@@@ @@@@@@@@@@@@@@@ @@ @@@@@ @@@@ @@@ @@@ @@ @@ @@@@ @@ @@@@ @@@@@@@@@@@@@
@@@ @@@@@@@@@@@@@@@@ @ @ @@@@@ @@@@@@ @@@@@@@@@@@@ @@@@@@ @@@ @@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@
@@@@@@@@@@@@ @@@@@@ @@@@@@ @@@@ @@@@@@@@@@@@@@@@@@ @@@@ @ @@@@@@@@@ @@@@@@@@@ @@@@ @@@@@@@@
@@@@@@@@@@ @@@@ @@ @@@@@@@@ @@ @@@@ @@ @@@@ @@@@@@@@@@ @@@@@ @@@@ @@@@@@@@ @@@@@@ @@ @@@@@@@ @@@@@@@@@@@ @@@@@@@@@@@ @@@@@ @@@ @@@@@ @@@@@@@@@@@@@@@@@@@@@@ @@ @@@@@@@@@@@@ @ @@@@@@@@@@@@ @@@
@@@@@@@@@@@@@@@@@@ @@@@@@@ @@@@@@@@@@@@@ @ @ @@@@@@@@@@@@@@@@@ @@@@ @@@@ @@@@ @@@@@@@@@@@@@@@ @@@@@
@@@ @@@ @@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @ @@@@@@@ @ @@@@@@@@@ @@ @@@@ @@@@@@@@@@@@@@@@@@@ @@@@@@ @
@@@@ @@@ @@@@@@@@@@ @@@@@@@@@@ @@@@@ @@@@@@ @@@ @@@@@@@@@@@@@ @@@ @@@@ @@ @@@ @@ @@@@@@@@@@@@@@@@
@@@@@@@@@@@ @@ @@ @@@ @@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@ @@@@@@@@@@@@@@@ @@@@@@@@@@ @@@@@@@@@
@@@@@ @ @ @@@@@ @@@@@@@@@@@@@@ @@@@@ @@@@@@@@@@@@@ @@ @@@@@@@@ @@ @ @ @ @@@@@@@@@@@@@@@@@@ @@@@
@@@@ @@@@ @@@@@@@ @@ @@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@ @@@ @@@@@@@@ @@@@@@@@@@ @@@@ @ @@@@@@@@ @@ @
@@@@@@@@@@@@@@ @@@@@@@@@@@ @@@@@ @@@@@@@@@@@@@@@@@@ @@@@@@ @@@@@ @@@@@@@@@ @ @@ @@@@@@@@@@@@@
@@@@ @@@@ @@@ @@@ @@@@@@@@@@@@@@@@@@@ @@@@@ @@@@@@@@ @@@@@@ @@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@ @@@
@@ @@ @ @ @@@@ @@@ @ @@@@@@@@@@ @@ @@@@@ @@@@@@@@@@ @@@@@@@@ @ @@@@@@@@@@ @@@@@ @@@@@@ @@@@@
@ @@@@ @@@@@@@@@@@@@@@@ @@@@@ @@@@@@ @ @@@@@@@ @@@@@@@@@@@@@@@ @@@@@ @@@ @@ @@@@@@@@@@@@@@@@ @@@
@@ @@@@@@@@@@@@@ @@ @@@@ @@@@@@@@@ @@@ @ @@@@@@@ @@ @@@@ @@@@@@ @@ @@@@@@@ @@@@ @@ @@@@@@@@@@@
@@@ @@@@@@@@@@@@ @@@@ @@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@
@@ @@@@@@@ @@@@ @@@ @@@@@@@@@ @@ @ @@@@@ @@@@@@@ @@@@@@ @ @@@ @@@@@@@ @@@@@@@@@ @@@@@ @@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@ @@@ @ @@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@ @@ @@@@@@@@@@@ @ @@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@ @@@@@@@@@ @@ @@@@@ @@@@@ @@@@ @@@@@ @@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
grader:
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <cmath>
#include <climits>
#include <cstring>
#include <map>
#include <vector>
#include <ctime>
using namespace std;
int mp[105][105];
int pos[505][2];
inline int pw (int a) {return a*a;}
inline double dis (int a, int b, int c, int d) {return sqrt(pw(a-c)+pw(b-d));}
double disa[505][505];
inline int getInt () {int ret = 0; char ch;while((ch = getchar()) < '0' || ch > '9') ;ret = ch-'0';while((ch = getchar()) >= '0' && ch <= '9') ret = ret*10+(ch-'0');return ret;
}
void gmark (const char*msg, int mark) {puts(msg);printf("your score: %d\n", mark);exit(mark);
}
const char g[100][101] = {
"@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@ @@@@ @@@@@@@@ @@@@@ @@@@@@ @@@@",
"@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@ @@@@@@@@@@ @@@@ @ @@@@@@ @ @@@ @ @@@@@ @@@@@ @@@@@@@@@@ @",
"@@@@@@@@@@@ @@ @@ @@ @@@@ @@@@@@ @@@@@@@@@@@@ @@@ @@@ @ @@@@@ @ @@@@@@@@@@ @ @@@@@@@@@@@ @@ @@@@@@ ",
"@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@ @@@@ @@@@@@@@@@@@@@@@ @ @@@@@@@@ @ @@@@@ @@ @@@@@@@@ @@@@@",
"@@@@@@@@@@@ @ @@@@@ @@@ @@@@@@@@@@@@@@ @@@@ @@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@ @@@@@ @@@ @@@@@ @",
"@@@@@@@@@@@@@ @@@@@@@ @@@@@@@@@@@@@@@@@@@@@@ @@@@@ @ @@@@@@ @@@ @ @@ @@@@@@@ @@ @@@@@@@@@@@@@@@@",
"@@@@ @@@@@@@@@@ @@@@@@@@@@ @@@ @@@@@ @@@@@@ @ @@@ @@ @@@@@@@@@ @@ @@ @@ @@ @@@@@@ @@ @@@@@@@@@@@ @@",
" @@ @@@@@@@@ @@ @ @@ @@@ @@@ @@@@@@@@@@@@@@@@@ @@@@@@@@@@@ @@ @@@ @@@@@@ @@@ @@@ @ @@@@@@@@@@@",
"@@@ @@@@@@@@@@@@ @@@@@ @@@ @ @@ @@@@@@@@ @@@@@@ @@@@@ @ @@@@ @@@@@@ @@@@@@@@@@@@@@@@ @@@@@@@@@@@",
"@@@@@@@@@@@@@@@ @@ @@@@ @@@@@@@@ @@@@ @@@@@@ @@@@@ @ @@@@@ @@ @ @ @@@@ @ @@@@@@@@@@ @@@ @@@@@@@@",
"@@@@@@@@@@@ @@@@@@@@@@@@ @@@@@@@@@ @@@@@@@@@@@@@ @@@@@ @@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@ @@@@@@ @@",
"@@ @ @@@ @ @@@ @@@@ @@@@@@ @@@ @@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@ @@@@@@@@@@@",
"@@@@@@@ @@@@ @@@@@@ @@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @@@@ @@@ @@ @@ @@@@@@ @@@@@@@ @@@@@@@@@@@@@@@",
"@@@ @@@@@@ @@@ @@@@@@@@@@@ @ @ @@@ @ @@@ @@@@@@@@@@@@@@@@ @@@@@ @@ @@@@@@@@@@@@@@@@@@@ @@@@@@",
"@@@@ @@@@@@@ @@@@@@ @ @@@ @@@@@@ @@@ @@@@@@@@@@@@@@@@@@ @ @@ @@@@@@@ @@@@@ @@@@@@@@ @@ @@ @@ ",
"@@@@@@@@ @@@@@@@@@@@@@@ @ @@@@@@ @@@@@ @@@@@@@@@@@@@@@ @@@@ @@@@@ @@@@@@@@@@@@@@@@@ @@@@@@@@@@",
"@ @@@@@@@@@ @@@ @@@@@ @@@@@ @@@@@@@@@@ @@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@ @ @@",
"@@@@@@@@@@@@@ @@@@ @@@@@@@ @@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@ @@ @@@@@@@@@@@ @@@@@@@@@@@@@@ ",
"@@@@@@@@@ @ @@@@@@@@@@ @ @@@ @ @@ @@@@@@@ @@@ @@@@@@@@ @@@@@@@@ @@@ @@@@ @@@@@@@@ @@@@ @@@@@@",
"@@@@ @@@@@@@@@@@ @@@@@@@@@@@@ @@@ @ @@@@@@@ @@@@ @@ @ @@@@@@@@@ @@@@ @@@@@@@@@@@@@@@@@@@@@@ @ @@@",
"@@@@@@@@@ @ @ @ @@ @@@@@@@ @ @ @ @@@ @@@@@ @@@@@@@@@@@ @@ @ @@ @@ @@@@ @@@@@@@@@@@@@@@@ @@@@@",
"@@@@@@@@ @@@@@@@@@@@@@@@ @@@@ @@ @@@ @@@@ @ @@ @@ @@@@@@ @@ @@ @ @@ @@ @@@@@@@@@@@@@@@@@@@@@@@",
"@@@@@@ @@@@@ @ @@ @@@@@@ @@@ @ @@@@@ @ @@ @@@@@@@@@ @ @ @@@@ @@@@@@@@@@@@@@ @@@@@@ ",
"@@@@ @@@@@@@@@ @ @ @@ @@ @ @@@@@ @@ @ @ @@@ @ @@ @@@ @ @ @@@ @@@@ @@@ @ @@@",
"@@@ @@@@@@@ @@ @@@@@@@@@@@ @@@@ @@@ @@@@ @@ @@ @ @@@@@ @ @@ @@@@@@ @@@@ @@@@@@",
"@@@@@@@ @@@ @@@@@ @@@ @ @@ @@@@ @@@@ @@@@ @@ @@@ @@@ @ @@ @ @ @@@@@ @@ @@@@@",
"@@@@@@@@@@ @ @@@ @@@@@@@@@ @@@@@@@@@ @ @@@@@@ @@@@@@ @ @ @@@ @ @ @ @@@@ @@ @@@@@@@@@ @ @",
"@@ @@@@ @@@@@ @@@@@@@ @@@@ @@ @@@@@@@@@@@@@ @@@ @@@ @@@@@@@ @ @@@ @ @@@@@@@@@@ @ ",
"@@@@@@@@@ @@ @@ @@@@@@@@ @ @@ @@@@@@@ @@@@@ @@@ @@@@@ @@ @@ @@@@ @ @@@@@@@@@@ @@@",
"@@ @@@@@@ @ @ @@ @ @@ @@@@ @@ @@@@ @@@@@@ @@ @@@@@ @@@@@@@@@ @@@ @@@@ @@@ @@ @@@ @@@@ @ @",
" @@@@ @@@@@ @ @@@ @@@@@@@ @@ @@@@ @@@@@@@@@@@@@@@@@ @@@@@@@@ @@ @@@ @ @@@ @@@@@@@@@@@@@@@ ",
"@@@@@@ @@@@@@ @@@ @@ @@ @ @@@@ @@@@@ @ @@ @@@@@@@@@@@ @ @@@ @ @@@ @@ @ @@@ @ @@ @@ @ @ @ ",
"@@@@@@@@ @@@@@@@ @@@@@ @@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@ @@@ @@ @@@@@@@@@@@@@@@@@@@@@@@@ @ @ @",
"@@@@@@ @ @@@@@@@@@@@ @ @ @@@@@ @ @@ @@ @@@@@@@@ @@@@@@@@ @@@ @ @ @@@ @@ @@@@@@ @@ @@@ @@ @ ",
" @@@@@@@@@@@ @@@@@@@@@ @@@@@@@@@@@ @@ @@@@@@@@@@@@ @@@@@@@@ @ @@@@ @@@@@ @@@@@@@@@@@@@@@@ @ @ ",
"@ @@@@ @ @@@@@ @@@@@ @ @@@@@@@@@@@ @@@ @@@@@@ @@@@ @@@@@@@@@@@ @@@@@ @@@ @@@ @@@@@ @@@ @ @@@",
"@@@@ @@@@@@@@@@@@@@@ @@@@ @@@@@@@@@@ @@@@@@@@@@@@ @ @@@@@@@@@@@@@@ @ @@ @@@@@@@@@@@@@@@@@@@@ @ ",
" @@@@@@@@@@@@ @@ @@@@@@@@@ @@@@@@@@@@@@ @@@@@ @@@ @@ @@@@@ @@@@@@@@@@ @@@@@@@@@@@@@@@@@@ @@@ @ ",
"@@@@ @@@@@@ @@@ @@@@@@@@ @@@@@ @@@@@ @ @@@@ @@@ @@@ @@@@@@@@@@@ @@@ @ @@@@@@@ @@@@@@@@@@@@ @@ @",
"@@@@@@@@@@@@@@@@@@ @@@@@@@@@ @@@@@@@ @@@ @@ @@@@@@@@@@@@@@@@@@@@@ @@@ @@@@@ @@ @ @@@@ @@@@ ",
"@@ @@@@ @@@@@@@@@@@@@@@@@@@@@ @@@ @ @@@@@@@@@@@@@@@ @@@@@@ @@@ @@@@ @@@@@ @@@@@@@@@ @@ @ @@@ @ @",
"@@@@ @@@@@@@ @@@@@@@@@@@ @@ @@@@@@@@@ @@@@ @@@@@@@@@@ @@@@@@@@ @ @@@ @@@@@ @@@ @@@@@ @@@@ @@ @@ @",
"@@@@@@@@ @@ @@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@ @@@@@@@@@@@@ @@@@@@@@@ @@ ",
"@@@ @@@@@@@@@ @@@@@@@@@@@@ @@@ @@@@ @@@@@@ @@@@@@@@@@ @@@ @@@@ @ @@@@@ @ @@@@ @@@@@@ @@@@ @ @ ",
"@ @@@@@@@@@@@@ @@@ @@ @@@@@ @@@@@@@@@ @ @@@@@@@@@@@@@@@ @@@@@@@ @@@@ @@@@@@ @@ @@ @@ @@ @@@@ @",
"@@@@@@@@@@@@ @@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@ @@@@@@@@@ @@@ @ @@@ @@@@@@@@@ @@@@@@@@@@@ @@@@ @@",
" @@@@@ @@@@@@ @@ @@@@@@@ @ @@@ @@ @@@ @@@ @@@@@@ @@@@@@ @ @@@ @ @@@@@@ @@@@@ @@@@@@@@@@@ @ @@@@@ ",
"@@@@ @@@@ @ @@@@@@ @@@@ @ @@@@@@@@@@@@@@@@@@@ @@@@@@@@@ @@@@@@ @ @ @@@@@@@@@@@ @@@ @@ @@@@@ @@@@ ",
"@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@ @ @@@@@ @@@ @@ @ @@@@ @ @@@@@@ @@@ @@@@@ @@@ @@@@@@@@ @@@ @@@@",
"@@@@@ @@@ @@@@@@@ @@@@@@@@@@ @ @ @@@@ @@@@@@@@ @@@@@@@@@@@@@@ @@ @@ @@@ @@ @ @@@@@@ @@@@ @ @@@ @@",
"@ @@@@@@@@@ @@@@@@@@@@@@@ @@@@@ @@@@@@ @ @@@@@@@@@@@@@ @@@@@@@@@ @ @@@ @@ @ @@@@@@@@@@@@ @@ @ @@ @",
"@ @@@@@@ @@@@@@@@ @@@@@@@@@@@ @@@@@@@ @@@@@@@@ @ @@@@@@@@@@@@@@ @ @ @@@ @@@ @ @@@ @@@ @ ",
" @@@@@@@@@ @ @@ @@ @@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@ @@@@@@ @ @@@ @ @@ @ @@@@ @@@ @",
"@@@@ @@@@@@@@@@@@@@ @@@@@@@@ @@@@@@@@@@@@@@@ @@@@@ @ @ @@@@ @@@ @@@@@@@ @ @@@@ @@@@@@@ @@@@@ @ @@ ",
" @@@@@@@@@@ @@@@@@@@@@ @@ @@ @@@@@@@@@@@ @@@@@@@@@@@@@@@ @@ @@ @@@@@@@@ @@@@@ @@@@@@@ @ @ @@@@@@",
"@@ @@@@@@@ @@@ @@@@@@@@@@@ @@@@@@@@ @@@@@@@@@@@ @ @@@@@@@@ @@ @@@@@@ @@@ @ @@ @@ @ @ @ @ @ @ @@",
"@ @@@@@@@ @@@@@@@@@@@@@ @@@ @@@@@@ @@@@@@@ @@@@@@@ @@@@@@@@ @ @@@@@@@@@ @ @ @@@ @ @@@@@ @ @@ @ ",
"@ @@@@@@@@ @@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @@@@@@@@@@@@@@@ @@ @@@@ @@@@@@@@@@ @@@@",
"@@@@@ @ @@@@ @@ @@@@@ @@@@@@ @@@ @ @@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@ @@@@ @ @@@@@@@@@@ @@ @@@@@@ ",
" @@@@@@@@@@@ @@@ @@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@ @@@ @@@@@@@@@@@@@@ @@ @@@ @@@ @@ @@@ @@@@@@@@",
" @@ @ @ @@@@ @ @@@ @ @@ @@@@@@@@@@@@@@@ @@@@@@@@@@@@ @@@@@@@@@ @@@@@@ @@@ @@@@@ @@@@@@@@@@@",
"@@@@@@@@@@@ @ @@@@@@@@@@@@ @@@@@@@@@@@@@ @@@@@@@@@ @@@@@@@@@@ @@@@@@ @ @ @@@@@ @@@@ @ @@@@ @ @@ ",
"@@@@@@@@@@@ @@@@@@@@@@@@@@ @@@@@@ @@@ @@@@@@@@@@@@@ @@ @@ @ @ @@@ @@@@@@@@@@@@@@@@@@@@@@@@",
"@@@ @@@@@@ @@@ @ @@@@@ @@@@@@@@@@@@@@@@@@@@ @@ @@@@@@ @@ @ @@@@ @@@@@@@@@@@@ @@@@ @@@",
"@@@ @@@@@@ @ @@@@@@@@@@@@@@@@@@ @@@@@@ @@@@@@@@ @@@@@@@@@@@@@@ @ @ @@@ @@@@@@@@@@@@@@ @",
"@@@@ @ @@@ @ @@ @@@@ @@@@ @@@@@@@ @@ @@@@@ @@@@ @@@@@@@@ @@@@ @@ @@ @@@@@@@@@@@ @@@@@@@@@@@ ",
"@@@@@@@@@ @ @ @@@@@@@@@ @@@@@@@@@@@ @@@@@@@@ @@@@@ @@@@@ @@@@@ @@ @ @@ @ @@@@@@@@@@@@@@ @@@@@",
"@@ @ @@@@ @@@@@@ @ @@@ @ @@ @@@@@@@@@@@@@@ @ @ @@@@@@@@@@ @@ @@@@@ @@@@ @ @ @@@@@ @ @@@@@@@@@@@",
"@ @ @@@@@@ @@@@@ @@@@ @@ @@@@ @ @@@@ @@ @@@ @@@ @@ @@@@ @@@@ @@@ @ @@@@@@@@@@ @@@@@@ @@@@ @@@@",
"@@@@@@@@@@@@ @ @@@@@ @@@ @@@ @@@@@@ @@ @@ @@@@@@@@@ @ @@@@@ @@ @@ @ @ @@@@ @@@@@@@ @@@ @ @@@",
"@@@@@@@ @@@@@@@@@@@@@@@ @@@@@ @ @ @@ @@ @ @@@@@@@@@ @ @@@ @@@@ @@ @ @@ @@@ @@@@@@@ @@@@@@@@@@",
"@@ @@@@@@@@@ @ @@@@@ @@@@@ @@@@ @ @@ @@@@@ @ @@@ @ @@ @ @ @ @@@ @@@@@@@ @@@@@@@@@@ @@@@ @@@",
"@@@@@@@ @@@@@@@@ @@ @@@@@@@ @@@@@ @@@@@@@ @@@ @@ @@@@@@ @@@@@ @ @ @ @ @@ @@@@@@ @ @@@@@@ @",
" @@@@@@@@@ @@ @@@@@ @@ @@@ @@@ @ @@@ @ @@@@@@@@@@@@@@@@@ @@@ @ @@@@@@@@@@@@@@@@@@@@ @@@@@ @@",
"@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@ @@@ @ @@@@@@@@ @ @ @ @ @@@@@@@@@@@@@@@@",
"@@@@@@@@@@ @ @@ @ @@@@@@@@ @@@ @@@@@ @ @@@@@@@@@@@@ @@@@@@@ @@ @ @ @@@@ @ @@@@@ @@ @ @@@@@@@@@@@@",
"@@@ @@@ @@@@@@@@@@@@@@@@ @ @@@@@@@@@@ @@@@@@@@ @@ @@@ @@@@ @@ @@ @ @@@ @@@@@@@@@ @@@@@@@@@@@@@@@",
"@@@@@@@@@@@@ @ @@@@@@@ @@@@@ @@ @@@ @@@@@@@ @@@@@ @@ @@@@@@@ @ @@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@ @",
"@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @@ @@@@@@ @ @ @@@@@@ @@@@@@@ @@@@@@@@@ @@@@@",
"@@@@@@@@@@ @ @@@@ @ @@@@@@ @@@@@@@@@@@@@@@ @@ @@@@@ @@@@ @@@ @@@ @@ @@ @@@@ @@ @@@@ @@@@@@@@@@@@@",
"@@@ @@@@@@@@@@@@@@@@ @ @ @@@@@ @@@@@@ @@@@@@@@@@@@ @@@@@@ @@@ @@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@",
"@@@@@@@@@@@@ @@@@@@ @@@@@@ @@@@ @@@@@@@@@@@@@@@@@@ @@@@ @ @@@@@@@@@ @@@@@@@@@ @@@@ @@@@@@@@",
"@@@@@@@@@@ @@@@ @@ @@@@@@@@ @@ @@@@ @@ @@@@ @@@@@@@@@@ @@@@@ @@@@ @@@@@@@@ @@@@@@ @@ @@@@@@@ @@@@",
" @@@@@@@ @@@@@@@@@@@ @@@@@ @@@ @@@@@ @@@@@@@@@@@@@@@@@@@@@@ @@ @@@@@@@@@@@@ @ @@@@@@@@@@@@ @@@",
"@@@@@@@@@@@@@@@@@@ @@@@@@@ @@@@@@@@@@@@@ @ @ @@@@@@@@@@@@@@@@@ @@@@ @@@@ @@@@ @@@@@@@@@@@@@@@ @@@@@",
"@@@ @@@ @@@@@@@@ @@@@@@@@@@@@@@@@@@@@ @ @@@@@@@ @ @@@@@@@@@ @@ @@@@ @@@@@@@@@@@@@@@@@@@ @@@@@@ @",
"@@@@ @@@ @@@@@@@@@@ @@@@@@@@@@ @@@@@ @@@@@@ @@@ @@@@@@@@@@@@@ @@@ @@@@ @@ @@@ @@ @@@@@@@@@@@@@@@@",
"@@@@@@@@@@@ @@ @@ @@@ @@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@ @@@@@@@@@@@@@@@ @@@@@@@@@@ @@@@@@@@@ ",
"@@@@@ @ @ @@@@@ @@@@@@@@@@@@@@ @@@@@ @@@@@@@@@@@@@ @@ @@@@@@@@ @@ @ @ @ @@@@@@@@@@@@@@@@@@ @@@@",
"@@@@ @@@@ @@@@@@@ @@ @@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@ @@@ @@@@@@@@ @@@@@@@@@@ @@@@ @ @@@@@@@@ @@ @",
"@@@@@@@@@@@@@@ @@@@@@@@@@@ @@@@@ @@@@@@@@@@@@@@@@@@ @@@@@@ @@@@@ @@@@@@@@@ @ @@ @@@@@@@@@@@@@ ",
"@@@@ @@@@ @@@ @@@ @@@@@@@@@@@@@@@@@@@ @@@@@ @@@@@@@@ @@@@@@ @@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@ @@@ ",
"@@ @@ @ @ @@@@ @@@ @ @@@@@@@@@@ @@ @@@@@ @@@@@@@@@@ @@@@@@@@ @ @@@@@@@@@@ @@@@@ @@@@@@ @@@@@ ",
"@ @@@@ @@@@@@@@@@@@@@@@ @@@@@ @@@@@@ @ @@@@@@@ @@@@@@@@@@@@@@@ @@@@@ @@@ @@ @@@@@@@@@@@@@@@@ @@@ ",
"@@ @@@@@@@@@@@@@ @@ @@@@ @@@@@@@@@ @@@ @ @@@@@@@ @@ @@@@ @@@@@@ @@ @@@@@@@ @@@@ @@ @@@@@@@@@@@ ",
"@@@ @@@@@@@@@@@@ @@@@ @@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@",
"@@ @@@@@@@ @@@@ @@@ @@@@@@@@@ @@ @ @@@@@ @@@@@@@ @@@@@@ @ @@@ @@@@@@@ @@@@@@@@@ @@@@@ @@@@@@@@@",
"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@ @@@ @ @@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@ @@ @@@@@@@@@@@ @ @@@@",
"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@ @@@@@@@@@ @@ @@@@@ @@@@@ @@@@ @@@@@ @@@@@@@@@@"
};
bool vis[505];
int main () {freopen("answer", "r", stdin);for(int a = 0; a<100; a++)for(int b = 0; b<100; b++) {char str[100];if(scanf("%s", str) != 1) gmark("the length of the ans is too short", 0);int len = strlen(str);for(int i = 0; i<len; i++)if(str[i] < '0' || str[i] > '9') gmark("Appear wrong char", 0);sscanf(str, "%d", &mp[a][b]);//printf("%d\n", mp[a][b]);if(mp[a][b]) {if(mp[a][b] > 500 || g[a][b] != ' ') gmark("Appear wrong key", 0);if(vis[mp[a][b]]) gmark("Appear the same key", 0);vis[mp[a][b]] = true;pos[mp[a][b]][0] = a, pos[mp[a][b]][1] = b;}}for(int i = 1; i<=500; i++)if(!vis[i]) gmark("There's key left", 0);for(int i = 1; i<=500; i++)for(int j = 1; j<=500; j++)disa[i][j] = dis(pos[i][0], pos[i][1], pos[j][0], pos[j][1]);freopen("P", "r", stdin);int lst = getInt(), x = 5000266, k;double cur = 0;while(x --) k = getInt(), cur += disa[k][lst], lst = k;printf("distance:%.2lf\n", cur);if(cur <= 43000000) gmark("full score", 100);else if(cur <= 50000000) gmark("high score", 100-(cur-43000000)/(50000000-43000000)*40);else if(cur <= 110000000) gmark("good", 60-(cur-50000000)/(110000000-50000000)*30);else if(cur <= 200000000) gmark("shou wan", 30-(cur-110000000)/(200000000-110000000)*29);else if(cur <= 250000000) gmark("qian dao", 1);else gmark("sorry,no score", 0);
}
至于P文件(18566KB)不太重要(在本题解中),所以不发了。。。
如果非要手测,可以自己随机生成5000267个数
simple_answer(实际知道格式就可以了):
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 352 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 460 0 0 0 0 0 0 0 0 0 0 0 0 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 37 0 0 0 0 0 0 0 0 0 0 0 0 117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 453 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 324 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 49 0 0 0 0 0 94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 135 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 22 0 0 0 0 0 0 0 0 0 497 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 481 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 0 0 0 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 0 0 0 0 0 0 0 0 0 0 0 0 0 438 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 366 0 0 0 0 383 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 0 0 0 0 0 0 0 0 0 0 0 0 0 141 462 449 0 0 0 0 0 0 0 0 0 360 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 124 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 362 0 0 0 0 0 0 261 0 0 0 0 0 0 0 0 0 0 282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 406 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 322 0 0 0 0 0 439 0 0 0 0 0 0 38 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 198 0 0 0 0 0 0 0 0 184 175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 482 0 0 0 0 0 0 0 0 0 0 0 0 0 0 381 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 0 0 178 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 0 0 0 0 0 0 0 0 0 0 0 0 0 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 329 0 0 0 207 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 455 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 467 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 270 0 0 0 0 0 0 0 0 0 0 0 0 0 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 356 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 377 0 0 206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 315 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 426 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 319 0 0 0 0 0 0 0 0 0 111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 158 0 192 0 0 0 157 0 0 373 0 0 0 0 0 0 0 390 0 0 421 0 0 97 0 0 0 0 0 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 314 0 0 0 408 0 0 0 0 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 359 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 30 260 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 343 0 0 0 427 0 0 391 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 0 0 0 0 0 193 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 405 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 433 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 55 0 0 0 0 0 0 0 0 0 0 0 0 59 0 318 301 0 0 0 0 0 0 0 0 112 434 0 0 409 0 0 0 0 0 0 435 76 0 0 0 34 128 0 0 0 327 187 0 0 0 387 0 0 0 0 0 0 0 243 0 0 0 0 0 0 0 0 0 0 334 0 0 0 0 0 0 0 0 0 0 0 0 151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 444 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 488 0 0 114 0 0 0 0 0 0 0 0 17 0 0 0 328 222 0 0 0 0 0 0 457 443 0 0 446 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 440 0 0 0 0 0 0 0 0 0 224 200 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 368 472 0 0 0 0 311 0 0 0 0 0 0 0 0 0 299 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 0 0 0 0 0 0 0 0 0 0 414 53 0 0 0 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 0 0 0 0 0 0 0 0 0 379 0 0 0 0 0 0 0 0 0 274 0 0 153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 395 0 0 0 0 0 0 230 0 344 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 308 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 316 216 0 0 0 0 0 0 0 0 0 0 0 0 0 144 0 0 0 0 0 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 258 0 0 413 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 437 0 0 430 0 0 0 0 0 0 0 0 0 0 0 0 256 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 393 0 0 0 0 0 0 0 0 0 0 0 0 0 253 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 0 0 0 0 0 0 0 417 0 0 0 382 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 442 0 0 0 371 0 0 0 0 0 0 0 0 0 492 0 0 0 0 0 0 213 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 432 0 0 0 0 0 0 0 0 428 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 272 0 0 0 109 0 254 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 476 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 411 0 0 0 345 0 0 0 0 0 0 0 0 0 0 305 0 0 0 0 0 317 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 105 0 0 0 0 0 132 0 0 484 0 0 0 0 0 0 0 0 0 139 238 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 321 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 0 0 0 0 347 0 0 0 0 0 0 0 0 0 264 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 40 0 364 182 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 0 0 0 0 0 0 0 0 149 0 0 0 0 0 0 0 0 0 0 0 140 0 0 0 0 0 0 0 0 397 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 29 188 156 0 0 0 0 0 0 0 0 0 0 0 0 295 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 281 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 292 0 0 0 0 0 0 266 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 0 0 0 0 0 0 0 0 0 0 0 0 0 0 499 289 118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 93 0 0 0 0 0 0 403 0 0 0 0 239 0 0 0 0 0 0 0 0 0 0 0 215 275 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 341 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 302 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 304 0 0 0 0 0 0 0 60 0 0 0 0 0 0 189 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 280 0 0 0 0 205 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 400 0 0 142 0 0 0 0 0 451 0 0 0 0 0 0 41 0 0 0 0 195 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 478 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 340 0 0 0 0 0 0 0 0 357 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 335 0 0 0 0 0 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 0 0 0 0 0 0 0 227 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 236 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 252 0 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 422 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 0 0 0 0 0 0 0 0 0 0 0 0 361 0 0 0 0 0 0 0 0 0 0 0 0 0 0 273 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 445 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 162 0 0 0 0 0 0 0 0 104 0 0 0 0 0 0 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 33 0 0 0 0 0 0 190 129 0 0 0 0 0 0 0 0 0 0 0 0 286 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 143 0 0 0 0 0 0 0 0 0 0 0 0 300 0 0 0 0 0 0 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 0 0 0 0 0 0 0 0 0 0 228 0 0 0 0 0 0 0 0 0 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 268 0 0 412 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12 0 0 0 0 0 0 0 0 259 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 47 0 0 0 0 0 0 0 0 0 50 0 0 0 0 0 0 0 0 303 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 363 0 0 0 0 0 0 293 0 0 0 0 0 0 490 0 0 0 0 0 479 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 348 0 0 0 0 0 147 0 0 0 0 0 0 0 0 0 0 0 0 250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 262 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 185 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 0 0 0 0 0 0 62 0 332 485 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 407 0 0 0 0 0 0 338 0 0 0 0 464 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 307 0 0 0 0 0 0 127 0 0 0 0 0 0 0 0 194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 0 0 0 0 0 0 0 376 0 0 0 386 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14 0 0 0 0 0 0 0 0 0 0 0 290 0 0 0 0 0 0 283 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 0 0 0 0 0 0 0 0 0 0 0 0 0 0 306 0 398 297 0 0 0 0 0 0 0 0 0 21 0 312 0 468 18 0 0 0 0 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 0 298 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 137 0 0 263 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 271 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 310 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 202 0 0 0 0 0 0 0 0 401 0 0 0 0 0 0 0 0 0 0 0 370 0 0 0 0 0 0 0 0 0 0 0 0 0 130 0 0 0 0 0 0 0 0 0 0 336 0 0 0 0 0 0 0 0 450 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 0 0 0 176 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 291 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 165 0 0 0 0 420 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 320 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 489 0 0 0 0 0 0 0 0 0 0 0 456 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 365 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 402 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
461 0 0 277 0 0 0 0 0 0 0 0 0 0 0 418 0 0 0 0 0 0 0 0 0 0 113 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 351 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 0 0 0 0 0 249 138 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 0 0 186 0 0 0 0 0 0 0 0 0 0 0 0 164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 424 0 0 0 0 0 0 0 0 83 0 0 0 354 0 0 0 0 0 0 0 0 0 0 0 0 0 0 211 0 0 0 313 0 0 0 0 220 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 495 0 0 0 0 0 0 0 0 0 134 0 0 0 0 80 0 0 0 0 415 0 167 0 0 0 0 0 458 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 346 0 372 0 0 0 0 0 0 0 367 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 491 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 168 326 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 309 116 0 429 0 0 0 0 0 349 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 267 0 0 0 0 0 0 4 95 0 0 0 0 0 51 0 0 0 0 265 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 154 0 0 0 0 0 0 0 0 394 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 419 0 454 0 0 0 88 0 0 0 0 0 126 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 0 331 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 0 123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 496 0 0 0 0 0 0 219 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 84 0 0 0 0 0 0 0 145 0 0 0 0 0 0 159 0 0 0 0 0 0 0 0 0 0 150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 269 0 163 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 0 498 0 0 0 0 0 48 0 0 0 0 0 52 0 0 0 0 296 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 287 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 436 0 374 0 0 0 0 0 173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 355 0 0 0 0 0 0 0 177 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0 0 0 448 0 0 0 0 0 0 0 0 0 100 0 0 0 0 0 0 73 0 0 0 0 0 0 0 0 0 353 0 0 0 0 0 431 0 0 388 0 25 0 0 0 389 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 179 0 0 0 0 0 0 0 0 0 0 0 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 473 0 0 0 0 70 0 0 0 0 0 0 0 0 0 0 0 0 234 0 0 285 0 45 0 0 0 0 0 0 279 0 0 378 0 0 0 0 0 0 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 486 231 0 0 0 0 0 0 0 0 0 81 0 0 0 0 480 0 0 0 288 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 385 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 474 0 0 0 0 0 0 0 493 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 0 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 92 0 0 0 0 0 0 0 0 0 0 475 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 325 0 0 0 0 0 0 0 0 0 0 0 350 0 0 0 0 0 0 0 0 384 0 0 0 0 0 0 0 0 0 0 0 199 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 416 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 323 0 0 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 121 0 0 0 0 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 257 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 225 0 0 0 0 169 0 0 0 0 0 247 0 0 0 0 447 0 0 0 0 0 0 0 0 423 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 375 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 0 380 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 54 0 0 0 0 0 0 0 0 0 0 0 294 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 399 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 358 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 483 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 452 494 0 276 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 396 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 404 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 459 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 284 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 463 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 337 0 0 0 0 441 0 0 0 0 0 0 0 0 0 0 0 0 0 466 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 487 82 74 0 0 0 0 0 0 0 0 0 0 465 0 0 0 0 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 330 0 0 0 0 477 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 471 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 410 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 339 0 0 0 0 0 0 0 0 0 0 0 470 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 166 0 0 0 0 0 0 0 0 0 0 0 0 212 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 146 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 278 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 369 0 0 392 0 0 0 0 0 0 0 0 0 0 0 248 0 0 0 0 0 0 0 0 0 0 119 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 425 0 0 0 0 0 0 0 0 0 0 0 203 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 469 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 35 0 0 0 0 0 342 0 0 0 0 0 0 0 0 0 0 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
(实际上,本题的思路才是关键)
题解
考场上,看完题目,
果断写了一个小程序,用tong[i][j]表示i,j相邻的次数,排了个序
然后开始在simple_answer里Ctrl+F手动修改,把相邻次数最多的两个数靠得尽量近。
用了10min,手动修改了15组数据,测了一下,距离210,000,000+ /吐血
发现每次手动修改只会让距离减小500,000左右
像这样改下去得10分都难。
于是,开始想如何用程序来修改answer,
1个小时过去了
突然发现可以按一个数的出现次数排序,然后依次填进空位
然后开始肉眼观察空位的密度,
发现了三个比较好的区域(利用Dev-c++的缩放性质):
于是就想让这些排序后的数,“聚居”在这三个区域之一
先来看一号区域:
先将出现次数多数的放在空白较大的区域(如图中的三个红色小矩形)
然后在把不太重要的数放在外围。。。
结果发现这里的数不满500个。。。
然后扩大“居住区”:
经过各种操作(将矩形不断划分填空)
又过了一个小时
发现仍然只有44分。。。
于是我放弃了一号区
突然发现自己距离大的原因是区域太长了,然而编辑器在显示‘@’时,宽度比高度短
就造成了一种长宽比较均衡的错觉。。。
马上换二号区(行号22~66,列号54~100)
直接填入
测了一下47分 哇卡卡卡卡卡
然后再进行了类似于一号区的操作
然后49分了 2333333333
接下来,无论我怎么调参数,就是上不了50分,绝望
发现离考试结束只有50min了,连忙写了T1T2的暴力
最后10min,发现可以爬山(随机两个数,如果更优,就交换,否则再随机两个数,直到达到较优解)
可是已经晚了
后来,还是把爬山写完了(比较丑陋):
#include<cstdio>
#include<cstring>
#include<cmath>
#include<ctime>
#include<algorithm>
using namespace std;
int pos[505][2];
inline int pw (int a) {return a*a;}
inline double dis (int a, int b, int c, int d) {return sqrt(pw(a-c)+pw(b-d));}
double disa[505][505];
inline int gi()
{char c;int num=0,flg=1;while((c=getchar())<'0'||c>'9')if(c=='-')flg=-1;while(c>='0'&&c<='9'){num=num*10+c-48;c=getchar();}return flg==1?num:-num;
}
#define N 505
int tong[N];
struct node{int con,i;
}a[N];
bool cmp(node q,node w){return q.con>w.con;}
char c[105][105];
int ans[105][105];
int main()
{freopen("P", "r", stdin);int x,pre=0,i,j,k;while(~scanf("%d",&x)){if(pre!=x){a[pre].con++;a[x].con++;pre=x;}}for(i=1;i<=500;i++)a[i].i=i;sort(a+1,a+500+1,cmp);freopen("keyboard", "r", stdin);for(i=1;i<=100;i++)gets(c[i]+1);k=1;for(i=22;i<=66;i++){for(j=54;j<=100;j++){if(c[i][j]!='@'&&!ans[i][j]&&k<=500){ans[i][j]=a[k].i;k++;}}}freopen("CON","w",stdout);double cur,tmpcur;srand(time(0));for(i=22;i<=66;i++){for(j=54;j<=100;j++){if(ans[i][j]>0)pos[ans[i][j]][0]=i;pos[ans[i][j]][1]=j;}}for(i = 1; i<500; i++)for(j = i+1; j<=500; j++)disa[i][j] = disa[j][i] = dis(pos[i][0], pos[i][1], pos[j][0], pos[j][1]);int tmpa,tmpb,lst;freopen("P", "r", stdin);lst = gi();x = 5000266;cur = 0;while(x --)k = gi(), cur += disa[k][lst], lst = k;do{do{tmpa=rand()%500+1;do{tmpb=rand()%500+1;}while(tmpb==tmpa);swap(pos[tmpa][0],pos[tmpb][0]);swap(pos[tmpa][1],pos[tmpb][1]);for(j = 1; j<=500; j++)swap(disa[tmpa][j] , disa[tmpb][j]);for(j = 1; j<=500; j++)swap(disa[j][tmpa] , disa[j][tmpb]);freopen("P", "r", stdin);lst = gi();x = 5000266;tmpcur = 0;while(x --)k = gi(), tmpcur += disa[k][lst], lst = k;if(tmpcur>cur){swap(pos[tmpa][0],pos[tmpb][0]);swap(pos[tmpa][1],pos[tmpb][1]);for(j = 1; j<=500; j++)swap(disa[tmpa][j] , disa[tmpb][j]);for(j = 1; j<=500; j++)swap(disa[j][tmpa] , disa[j][tmpb]);}}while(tmpcur>cur);printf("distance:%.2lf\n", cur=tmpcur);}while(cur>43000000);freopen("my_answer5", "w", stdout);memset(ans,0,sizeof(ans));for(i=1;i<=500;i++)ans[pos[i][0]][pos[i][1]]=i;for(i=1;i<=100;i++){for(j=1;j<=100;j++)printf("%3d ",ans[i][j]);printf("\n");}
}
(运行用时25min,得分100)
爬山的辛酸经历
考后,因为比较懒,直接把grader复制过来进行记分,
发现每次都输出到answer,然后又读取answer,浪费了不少时间。
于是,干脆把两个程序合到一起,自己写了一个计算距离。
又发现每次随机都要读入两遍P文件,计算两次disa和cur,又浪费了不少时间。
然后就把两两距离和cur预处理出来,
随机交换两个位置只需要交换disa中的两行和两列以及它们的pos值(具体看程序)
读一次P文件,计算交换后的tmpcur,与之前的cur比大小。
如果更优就保留当前解,否则就还原。
我信心满满地码完代码,开始运行,然后就去吃饭了。
吃完饭回来,欸,怎么distance还在77,600,000左右盘旋,时大时小。。。
结果我每次随机的时候,disa都被memset了。。。(grader的残存片段)
又重新运行,distance终于乖乖递减,于是把它放在一边,开始刷莫队
过了25min左右,终于distance<43,000,000了,输出答案,兴高采烈地点开grader运行
46分!???wtf????
突然发现自己最后输出的ans没有更新,程序中只更新了pos /吐血
马上把pos转进ans中,又苦逼地运行了25min,输出答案,异常紧张地点开grader运行
100!!!!松了一口气。。。
其他做法
Kyle在考场上用启发式贪心(对每一个空位都算一个估价函数,每个值都按出现次数排序,并以相邻点建边从内向外填),
而且只跑了5s就100分了%%%%%%Orz
然而出题人是用的遗传算法跑了一个晚上。。。
[本校测试] 魔王的消失Day2——By Hineven T3葬诗 提交答案题(爬山算法)相关推荐
- 爬山算法改进粒子群求解测试测试函数shubert,测试函数的100种优化方法之14
爬山算法粒子群求解测试测试函数 shubert函数属于周期性多峰函数,如图1所示拥有多个全局最优值,如图二所示在一个周期内只有一个全局最优值,局部最优解较多,适合测试算法的收敛性能,粒子群算法是一种收 ...
- shl性格测试_德勤2021秋招网申Tips+SHL笔试原题
德勤校招时间表及对应的提醒 在线网申+线上笔试 2020年7月31日-2020年10月10日 "路人"说:一定一定一定要安排好网申时间--完成网申,即刻收到笔试,同时在收到笔试的5 ...
- 七月刚入职的阿里测试开发岗-高频知识整理,内附面试题答案
本文是将自己在面试前找工作的部分笔记重新整理了下,不少内容当时是查阅的知乎.博客园.书籍等.我自己在牛客上也学习了很多面经和经验帖,收获了好几家大厂offer.最近整理出来这些,希望能对找测开岗的朋友 ...
- 进入阿里做测试员遥不可及?这里或许有你想要的答案
阿里一直都是互联网的标杆企业,更是不少年轻人终身追求的目标,可同时,平台优福利好也意味着竞争者也会随之增多.让许多测试员望而却步,不敢往前. 本期,笔者将带你们深入了解阿里,从企业文化到招聘需求,知己 ...
- 今日头条2018校招测试开发方向(第一、二、三、四批)编程题汇总 - 题解
对于今日头条这家公司来说,测试的题和后端开发的题几乎是一样的,但是由于第一批的后端开发的题没有在牛客网上放出来,因此,猜测后端开发第一批的题应该和后端开发第一批的题一样,同时也想做一个测试方向编程题的 ...
- App测试的方法和思路有哪些?一篇文章告诉你答案
目录 一.安全测试 1.软件权限 2.安装与卸载安全性 3.数据安全性 4.通讯安全性 5.人机接口安全测试 二.安装.卸载测试 1.安装 2.卸载 三.UI测试 1.导航测试 2.图形测试 3.内容 ...
- 测试人员面试需要掌握的内容,软件测试面试题答案
1.在公司的测试流程是什么? 产品经理确认本次版本的需求,召开需求评审会,进行估时排期,需求和时间都确定之后,UI出设计图,开发人员进行开发,测试人员编写测试用例,召开用例评审会议,制定测试计划,包括 ...
- CCSP评估测试你能考多少分?(文末有答案)
评估测试答案 1. B.云备份解决方案使企业能使用存储服务,将数据和计算机文件存储在互联网上,而不是将数据存储在本地硬盘或磁带备份上.如果主要业务位置受损,导致无法在本地访问或恢复数据(因为基础设施或 ...
- 爱奇艺2018秋季校招测试工程师(第一场、第二场、第三场)编程题汇总 - 题解
做了下爱奇艺2018测试工程师的编程题,教开发工程师还是偏简单,特意写了个编程题合集. 题目链接: 爱奇艺2018秋季校招测试工程师(第一场): 爱奇艺2018秋季校招测试工程师(第二场): 爱奇艺2 ...
最新文章
- python-opencv 形态学
- /usr/bin/ld: cannot find -l*** 这里***可以指lapack等
- centos php 默认安装目录,centos系统中的软件安装目录在哪
- ubuntu下唤醒或休眠远程计算机
- 深度学习笔记(34) 目标检测
- 微信小程序 Image 图片实现宽度100%,高度自适应
- 2019Java查漏补缺(二)
- 【电力负荷预测】基于matlab粒子群算法优化支持向量机预测电力负荷【含Matlab源码 1225期】
- 福建工程学院linux锐捷认证,scau校园网认证
- foxmail的邮局和端口_Foxmail如何进行POP、SMTP设置(pop)
- 【Matlab读取图片提取RGB分量并将图片转化为二维三维数据作图】
- JS中的柯里化(currying)
- 使用Teamviewer实现远程控制安卓设备的实现过程记录
- 李宏毅机器学习01机器学习介绍
- Windows电脑蓝牙打电话-预研总结
- 【前辈经验】——前端职位描述
- 【拓扑排序+dp】Hzy's Rabbit Candy
- 2023校招荣耀笔试
- 2022最新酒桌小游戏小程序源码(附带流量主)
- UEFI小结-Handle的来龙去脉