P1011 [NOIP1998 提高组] 车站
#include <bits/stdc++.h>
#define int long long
using namespace std;
int a[21];
int fbnq(int x){
if (x <= 2)
return 2;
else if (a[x])
return a[x];
else {
int p = fbnq(x - 1) + fbnq(x - 2);
a[x] = p;
return p;
}
}
signed main(){
int a, n, m, x;
cin >> a >> n >> m >> x;
int k = (m - a) / fbnq(n - 3);
if (x <= 3)
cout << a;
else
cout << a + fbnq(x - 3) * k;
return 0;
}