This is the best problem, I can think of, and it is giving TLE.
Need Help
#include
using namespace std;
#define MOD 1000000007
int tilling(int n, int m) {
//base case
if(n==m){
return 2;
}
//recursive case
if(n<m){
return 1;
}
return (tilling(n-1, m)%MOD + tilling(n-m,m)%MOD)%MOD;
}
int main() {
int t;
cin>>t;
while(t–){
int m, n;
cin>>n>>m;
cout<<tilling(n,m)<<endl;
}
}