navigation switch
Home
Contests
Notification
Clarification
Problems
Ranklist
Status
HackStatus
下棋
Accepts: 345
Submissions: 2382
Time Limit: 6000/3000 MS (Java/Others)
Memory Limit: 65536/65536 K (Java/Others)
Problem Description
$N*M$的棋盘上有一个受伤的国王与一个要去救援国王的骑士,他们每个单位时间必须同时移动一次寻找对方。如下图所示,黑色的图例表示国王(右)或骑士(左)当前所在的位置,那么灰色的位置表示在一次移动中他们可能到达的位置。国王伤势严重,因此他必须在K个单位时间内得到骑士的救援,否则会挂掉。问国王是否可以在K个单位时间内获得救援,如果可以,最短需要花多少个单位时间。 ![](../../data/images/C584-1005-1.jpg)
Input
第一行包含一个整数$T, (1 \leq T \leq 50)$代表测试数据的组数,接下来$T$组测试数据。 每组测试数据第一行包含三个整数$N, M, K$, 且$2 \leq N,M \leq 1000$, $1 \leq K \leq 200$。第二行两个整数$X_{king}, Y_{king}$,对应国王所在方格的坐标。第三行两个整数$X_{knight}, Y_{knight}$,对应骑士所在方格的坐标。其中$1 \leq X_{king}, X_{knight} \leq N, 1 \leq Y_{king}, Y_{knight} \leq M$,保证骑士与国王一开始不在同一个方格内且他们都可以移动。:
Output
对于每组测试数据,输出两行: 第一行输出:"Case #i:"。$i$代表第$i$组测试数据。 第二行输出测试数据的结果,如果国王可以得到救援,则输出最快需要花多少个单位时间。否则,输出“OH,NO!”。
Sample Input
Copy
2 3 2 1 1 1 3 1 3 3 1 1 1 1 2
Sample Output
Copy
Case #1: 1 Case #2: OH,NO!