还有12ms的天才 QWQ
为什么我只能到15ms 太废了
#include <iostream>
using namespace std;
//int Fib(int n){
// int s;
// if(n==1||n==2) s=1;
// else{
// s=Fib(n-1)+Fib(n-2);
// }
// return s;
//}
int Fib(int n) {
if (n <= 1) return n;
int prev = 0, curr = 1;
for (int i = 2; i <= n; ++i) {
int next = prev + curr;
prev = curr;
curr = next;
}
return curr;
}
int up(int x,int k,int a){
return Fib(x-1)*k+Fib(x-2)*a;
}
int main() {
int a,n,m,x;
cin>>a>>n>>m>>x;
if(x==1||x==2)
{
cout<<a;
return 0;
}
n--;
int k=((Fib(n-2)+1)*a-m)/(1-Fib(n-1));
int t=n;
for(int i=0;i<n-x;i++)
m-=up(t---2,k,a);
cout<<m;
return 0;
}
有好心大佬帮我康康还有哪能优化吗