@[唐路凌最可爱](/user/61940)
甩个以前写的AC代码给你,自己找找哪里有问题
```cpp
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
int l,s,t,m,a[105],f[30000],num,dp[30000],ans=1<<30;
int main() {
scanf("%d %d %d %d",&l,&s,&t,&m);
for(int i=1; i<=m; i++) scanf("%d",&a[i]);
a[m+1]=l;
sort(a,a+m+2);
for(int i=1; i<=m+1; i++) {
if(a[i]-a[i-1]>=t) num+=(a[i]-a[i-1])%t+t;
else num+=a[i]-a[i-1];
f[num]=1;
}
f[0]=0,f[num]=0;
memset(dp,0x3f,sizeof(dp));
dp[0]=0;
for(int i=0; i<=num+t; i++)
for(int j=s; j<=t&&i-j>=0; j++)
dp[i]=min(dp[i],dp[i-j]+f[i]);
for(int i=num+t+1; i>=num; i--) ans=min(ans,dp[i]);
printf("%d",ans);
return 0;
}
```
by qsmoonzh @ 2019-11-06 22:36:42
@[唐路凌最可爱](/user/61940)
感觉这里有点问题
> if(stone[i+1]>stone[i]+90)
{
stone[i+1]=stone[i]+90;
}
by qsmoonzh @ 2019-11-06 22:39:38