葬诗

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葬诗 提交答案题(爬山算法)相关推荐

  1. 爬山算法改进粒子群求解测试测试函数shubert,测试函数的100种优化方法之14

    爬山算法粒子群求解测试测试函数 shubert函数属于周期性多峰函数,如图1所示拥有多个全局最优值,如图二所示在一个周期内只有一个全局最优值,局部最优解较多,适合测试算法的收敛性能,粒子群算法是一种收 ...

  2. shl性格测试_德勤2021秋招网申Tips+SHL笔试原题

    德勤校招时间表及对应的提醒 在线网申+线上笔试 2020年7月31日-2020年10月10日 "路人"说:一定一定一定要安排好网申时间--完成网申,即刻收到笔试,同时在收到笔试的5 ...

  3. 七月刚入职的阿里测试开发岗-高频知识整理,内附面试题答案

    本文是将自己在面试前找工作的部分笔记重新整理了下,不少内容当时是查阅的知乎.博客园.书籍等.我自己在牛客上也学习了很多面经和经验帖,收获了好几家大厂offer.最近整理出来这些,希望能对找测开岗的朋友 ...

  4. 进入阿里做测试员遥不可及?这里或许有你想要的答案

    阿里一直都是互联网的标杆企业,更是不少年轻人终身追求的目标,可同时,平台优福利好也意味着竞争者也会随之增多.让许多测试员望而却步,不敢往前. 本期,笔者将带你们深入了解阿里,从企业文化到招聘需求,知己 ...

  5. 今日头条2018校招测试开发方向(第一、二、三、四批)编程题汇总 - 题解

    对于今日头条这家公司来说,测试的题和后端开发的题几乎是一样的,但是由于第一批的后端开发的题没有在牛客网上放出来,因此,猜测后端开发第一批的题应该和后端开发第一批的题一样,同时也想做一个测试方向编程题的 ...

  6. App测试的方法和思路有哪些?一篇文章告诉你答案

    目录 一.安全测试 1.软件权限 2.安装与卸载安全性 3.数据安全性 4.通讯安全性 5.人机接口安全测试 二.安装.卸载测试 1.安装 2.卸载 三.UI测试 1.导航测试 2.图形测试 3.内容 ...

  7. 测试人员面试需要掌握的内容,软件测试面试题答案

    1.在公司的测试流程是什么? 产品经理确认本次版本的需求,召开需求评审会,进行估时排期,需求和时间都确定之后,UI出设计图,开发人员进行开发,测试人员编写测试用例,召开用例评审会议,制定测试计划,包括 ...

  8. CCSP评估测试你能考多少分?(文末有答案)

    评估测试答案 1. B.云备份解决方案使企业能使用存储服务,将数据和计算机文件存储在互联网上,而不是将数据存储在本地硬盘或磁带备份上.如果主要业务位置受损,导致无法在本地访问或恢复数据(因为基础设施或 ...

  9. 爱奇艺2018秋季校招测试工程师(第一场、第二场、第三场)编程题汇总 - 题解

    做了下爱奇艺2018测试工程师的编程题,教开发工程师还是偏简单,特意写了个编程题合集. 题目链接: 爱奇艺2018秋季校招测试工程师(第一场): 爱奇艺2018秋季校招测试工程师(第二场): 爱奇艺2 ...

最新文章

  1. python-opencv 形态学
  2. /usr/bin/ld: cannot find -l*** 这里***可以指lapack等
  3. centos php 默认安装目录,centos系统中的软件安装目录在哪
  4. ubuntu下唤醒或休眠远程计算机
  5. 深度学习笔记(34) 目标检测
  6. 微信小程序 Image 图片实现宽度100%,高度自适应
  7. 2019Java查漏补缺(二)
  8. 【电力负荷预测】基于matlab粒子群算法优化支持向量机预测电力负荷【含Matlab源码 1225期】
  9. 福建工程学院linux锐捷认证,scau校园网认证
  10. foxmail的邮局和端口_Foxmail如何进行POP、SMTP设置(pop)
  11. 【Matlab读取图片提取RGB分量并将图片转化为二维三维数据作图】
  12. JS中的柯里化(currying)
  13. 使用Teamviewer实现远程控制安卓设备的实现过程记录
  14. 李宏毅机器学习01机器学习介绍
  15. Windows电脑蓝牙打电话-预研总结
  16. 【前辈经验】——前端职位描述
  17. 【拓扑排序+dp】Hzy's Rabbit Candy
  18. 2023校招荣耀笔试
  19. 2022最新酒桌小游戏小程序源码(附带流量主)
  20. UEFI小结-Handle的来龙去脉

热门文章

  1. Qt6.0高速在线安装 下载极速无需漫长等待
  2. android版游戏键盘,游戏键盘(GameKeyboard)
  3. NXP PN53x系列芯片介绍
  4. 计算机学院校园文化标语,智慧校园文明宣传标语
  5. Go语言入门【7】指针
  6. 全球及中国二手车贷款行业运行分析及项目动态研究报告2021年版
  7. java 使用adobe fms流媒体
  8. 友盟推送_java后台集成和使用
  9. SaltStacks三:写法和高级状态
  10. 农夫过河问题的c语言实现