现在又40分了
```cpp
#include <bits/stdc++.h>
using namespace std;
const int M=1e4+50;
int a,n,m,x,ans;
int plus[M],minus[M];
int tap[20],sum[20];
int main(){
cin>>a>>n>>m>>x;
if(x<3){
ans=a;
}
else if(x>=3){
ans=a*2;
}
else if(x>=4){
tap[1]=tap[2]=1;
for(int i=3;i<=n-4;i++){
tap[i]=tap[i-1]+tap[i-2];//斐波拉契
}
for(int i=1;i<=n-4;i++){
sum[i]=sum[i-1]+tap[i];
}
int m=(m-sum[n-5]*a-ans)/sum[n-4];
ans+=sum[x-4]*a+sum[x-3]*m;
}
cout<<ans<<endl;
return 0;
}
//plus[0]=0;
//minus[0]=0;
//plus[1]=minus[1];
//plus[i]=plus[i-1]+plus[i-2];(i>2)斐波拉契数列
//minus[i]=plus[i-1];
//......
//tap[n]-m=0;
```
by orangeSteve_dev @ 2024-07-22 16:44:11