水题。
题目描述有坑,可以先根据样例手算试一试
//Serene
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<cmath>
using namespace std;
const int maxn=50;
int f[50],a,n,m,p,q,x;
int main() {
f[1]=f[2]=1;
for(int i=3;i<=20;++i) f[i]=f[i-1]+f[i-2];
scanf("%d%d%d%d",&a,&n,&m,&x);
if(x<3) printf("%d",a);
else {
if(n!=2) {
p=f[n-3];q=f[n-2];
m-=a*(p+1);m/=(q-1);
}
else m-=a;
printf("%d",a*f[x-2]+m*f[x-1]+a-m);
}
return 0;
}