听灌佬多(玄关)
  • 板块灌水区
  • 楼主Ethan_tang
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/12/3 11:48
  • 上次更新2024/12/3 17:44:48
查看原帖
听灌佬多(玄关)
1491661
Ethan_tang楼主2024/12/3 11:48

P1135,64pts

#include <bits/stdc++.h>
using namespace std;
int n,a,b,q[205];
bool vis[205];
int dfs(int i,int num)
{
	if (i < 1 || i > n || vis[i]) return -1;
	if (i == b) return num;
	vis[i] = 1;
	int up = dfs(i + q[i], num + 1);
    int down = dfs(i - q[i], num + 1);
	if (up == -1) return down;
    if (down == -1) return up;
    return min(up, down);
}
int main()
{
	cin >> n >> a >> b;
	memset(vis, false, sizeof(vis));
	for (int i = 1;i <= n;i++)
	{
		cin >> q[i];	
	}
	cout << dfs(a,0);
	return 0;
}
2024/12/3 11:48
加载中...