求救TLE
查看原帖
求救TLE
983616
huziqian楼主2023/9/1 13:28
#include<iostream>
using namespace std;
int n, Begin, End, l[209], vis[209], ans = 0x7ffffff;
void dfs(int a,int sum) {
	if (a == End) {
		ans = min(ans, sum);
	} //到达
	if (sum > ans)return;
	vis[a] = 1;
	if (!vis[a + l[a]] && a + l[a] <= n)dfs(a + l[a], sum + 1);
	if (!vis[a + l[a]] && a + l[a] >= 1)dfs(a - l[a],sum+1);
	vis[a] = 0;
}
int main() {
	cin >> n >> Begin >> End;
	for (int i = 1; i <= n; i++) {
		cin >> l[i];
	}
	vis[Begin] = 1;
	dfs(Begin,0);
	if (ans != 0x7ffffff)cout << ans;
	else cout << -1;
	return 0;
}
2023/9/1 13:28
加载中...