#include <iostream> using namespace std; const int LIMIT=50; long long int f(){ long long int dp0[LIMIT+1]={1,0},dp1[LIMIT+1]={0}; for(int i=1;i<=LIMIT;i++){ dp0[i]=dp0[i-1]+dp1[i-1]; if(i>1){ dp1[i]+=dp0[i-1]; } if(i>2){ dp1[i]+=dp0[i-2]; } if(i>3){ dp1[i]+=dp0[i-3]; } } return dp0[LIMIT]+dp1[LIMIT]; } int main() { // your code goes here cout<<f(); return 0; }