A22934. 贪吃蛇
填空题
困难
知识点
题目描述
贪吃蛇
题目描述
你设计一款贪吃蛇的游戏,游戏地图是一个 n×n 的方阵,从左上角(第 1 行第 1 列)出发,移动规则如下:
1.初始方向:向下移动
2.移动规则:
- 若前方格子未被访问过,则沿当前方向前进
- 若前方格子已被访问过,则立即左转(不移动),并重新判断前进条件
3.目标:计算到达第 i 行第 j 列所需的步数
输入格式
第1行: 一个正整数N,表示地图大小。
第2行:两个正整数 i,j,表示询问走到当前第i行第j列。
输出格式
仅一行,表示走到当前位置所需步数
输入样例#1
6
2 3输出样例#1
32输入样例#2
6
6 5输出样例#2
10数据范围
1≤n≤100000, 1≤i,j≤n
参考答案
#include<bits/stdc++.h>
using namespace std;
int s(int n,int x,int y)
{
if(y == 1) return x;
if(x == n) return n+y-1;
if(y == n) return 3*n-1-x;
if(x == 1) return 4*n - 2 -y;
return s(n-2,x-1,y-1)+4*(n-1);
}
int main()
{
int n,x,y;
cin>>n>>x>>y;
cout<<s(n,x,y);
return 0;
}
上一题
下一题