求大佬帮忙看看哪里有问题
#include <iostream>
using namespace std;
int n,l,r;
int w[100];
int ExtremeMet;
void dfs(int Pos,int Max,bool flag) {
if(flag==true) Max+=w[Pos];
if(Max>=l&&Max<=r) {
ExtremeMet++;
}
if(Pos!=n&&Max<r) {
dfs(Pos+1,Max,true);
dfs(Pos+1,Max,false);
}
}
int main() {
cin>>n>>l>>r;
for(int i=1;i<=n;i++) {
cin>>w[i];
}
dfs(0,0,0);
cout<<ExtremeMet;
return 0;
}