求条
  • 板块灌水区
  • 楼主Ethan_tang
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/12/4 19:16
  • 上次更新2024/12/4 21:33:46
查看原帖
求条
1491661
Ethan_tang楼主2024/12/4 19:16

P1135

#include <bits/stdc++.h>
using namespace std;
int n,a,b,q[205],vis[205] = {-1};
int dfs(int i,int num)
{
	if (i < 1 || i > n || vis[i] <= num) return -1;
	if (i == b) return num;
	vis[i] = num;
	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;
	for (int i = 1;i <= n;i++)
	{
		cin >> q[i];	
	}
	cout << dfs(a,0);
	return 0;
}
2024/12/4 19:16
加载中...