谁能告诉我为什么有一个TLE但还是100
查看原帖
谁能告诉我为什么有一个TLE但还是100
1007656
U_stinian楼主2023/8/17 22:09
#include <iostream>
using namespace std;
int n, a, b, ans = 0x7ffffff,k[205];
bool p[205];
void fun(int x, int sum){
	if (x == b) ans = min(ans, sum);
	if (sum > ans) return;
	p[x] = 1;
	if (x + k[x] <= n)
		if(p[x + k[x]] != 1) fun(x + k[x], sum + 1);
	if (x - k[x] >= 1 )
		if(p[x - k[x]] != 1) fun(x - k[x], sum + 1);
	p[x] = 0;
}
int main()
{
	cin >> n >> a >> b;
	p[a] = 1;
	for (int i = 1; i <= n; i++) cin >> k[i];
	fun(a,0);
	if (ans != 0x7ffffff) cout << ans;
	else cout << -1;
	return 0;
}
2023/8/17 22:09
加载中...