七十分代码求犇犇援助QwQ
查看原帖
七十分代码求犇犇援助QwQ
280233
Lee666666楼主2020/10/18 15:35
#include <bits/stdc++.h>
using namespace std;
const int inf = 0x7fffffff;
bool vis[205];
int f[105];
int n, a, b;

int min(int a, int b) {
	return a < b ? a : b;
}

int dfs(int a, int step) {
	if (a == b) {
		return step;
	}
	if (vis[a] || a < 1 || a > n) {
		return inf;
	}
	vis[a] = true;
	int ans = min(dfs(a + f[a], step + 1), dfs(a - f[a], step + 1));
	vis[a] = false;
	return ans;
}

int main() {
	scanf("%d %d %d", &n, &a, &b);
	for (int i = 1; i <= n; i++) {
		scanf("%d", &f[i]);
	}
	int ans = dfs(a, 0);
	if (ans == inf) {
		printf("-1");
	}
	else {
		printf("%d", ans);
	}
	return 0;
}
2020/10/18 15:35
加载中...