暴搜代码,请巨佬帮忙优化一下!
#include<iostream>
using namespace std;
int k,p,l;
long long cnt=0,mod=20201114;
void dfs(int b,int c){
if(b==l){
cnt=(cnt+1)%mod;
return ;
}if(b>l){
return ;
}for(int i=1;i<=k;i++){
if(i>=p){
if(!c) break;
else dfs(b+i,0);
}else dfs(b+i,1);
}
}
int main(){
cin>>k>>p>>l;
dfs(0,1);
cout<<cnt<<endl;
return 0;
}