社区讨论

58pts 求条

P1135奇怪的电梯参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mhj3de7t
此快照首次捕获于
2025/11/03 20:03
4 个月前
此快照最后确认于
2025/11/03 20:03
4 个月前
查看原帖
代码如下
C
#include <bits/stdc++.h>
using namespace std;
unordered_map<long long,bool> s;
long long c[205];
long long ans = 0;
long long n,sx,ex;
bool f = 0;
void dfs(long long x) {
	if (s[x]) return;
	s[x] = 1;
	if (x != sx) ++ans;
	if (x == ex) return cout << ans,f = 1,void();
	if (f) return;
	if (x + c[x] <= n) dfs(x + c[x]);
	if (f) return;
	if (x - c[x] >= 1) dfs(x - c[x]);
}
int main() {
	cin >> n >> sx >> ex;
	for (int i=1;i<=n;++i) cin >> c[i];
	if (sx == ex) return cout << 0,0;
	dfs(sx);
	if (!f) cout << -1;
	return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...