求助
查看原帖
求助
230965
MalphaX楼主2021/5/9 13:33

8,9两个点WA

#include<bits/stdc++.h>
using namespace std;
int a[1001],b,c,d,i,s,j,k;
bool f[1001];
void fs(int n,int m){
	
	if(n!=m){
	k++;
	if(a[n]==0)return;
	if(f[n]==false)return;
	f[n]=false;
		if(n+a[n]<=s)
		fs(n+a[n],m);
		if(n-a[n]>=1)fs(n-a[n],m);
		if(n-a[n]<1||n+a[n]>s){
		return;
		}
	}
	else {
		if(j!=1){
	cout<<k;
	j=1;}
	return;
}
}
int main() {
    cin>>s>>b>>c;
    for(i=1;i<=s;++i){
    	cin>>a[i];
    	f[i]=true;
	}
	fs(b,c);
    if(j!=1)cout<<-1;
	//cout<<k;
    return 0;
}

2021/5/9 13:33
加载中...