/ Vijos / 讨论 / 过河 /

我的这个代码为啥会RE呢??Linux上测试示例都过了啊

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int ans=0,i,L,s,t,m,cur,rock[200],have[200];
void dfs(){
for (i=t; i>=s; i--) {
if (!have[cur-i]) {
cur-=i;
}else if(i==s){
cur-=t;
ans++;
}
if (cur<=t) {
printf("%d\n",ans);
exit(0);
}
}
dfs();
}
int main(){
memset(have, 0, sizeof(have));
scanf("%d",&L);
cur=L;
scanf("%d%d%d",&s,&t,&m);
for (i=0; i<m; i++) {
scanf("%d",&rock[i]);
have[rock[i]]=1;
}
dfs();
return 0;
}
有人说要对石头排序,但是我觉得不排序也行啊……
而且我觉得我的数组定义的足够大啊……应该不会有越界的可能……
我是让青蛙往回跳……
刚才改了下代码,让青蛙正着跳,但是还是RE了……求解……

4 条评论

  • 1

信息

ID
1002
难度
7
分类
动态规划 点击显示
标签
递交数
25279
已通过
4398
通过率
17%
被复制
78
上传者