测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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; }
上一题 下一题