提交时间:2024-08-20 21:59:30
运行 ID: 173601
#include <iostream> #define d64 long long using namespace std; d64 n,s,t,f[100][100]; d64 CC(d64 num) { int len,a[50]; for (len=0;num>0;num/=2) a[len++]=num%2; d64 ans=0; for (int i=0,cnt=0;i<len && cnt<n;++i) { if (a[len-i-1]==1) { ans+=f[len-i-1][n-cnt]; ++cnt; } } return ans; } int main() { cin>>n>>s>>t; for (int i=0;i<50;++i) f[i][0]=f[0][i]=1; for (int i=1;i<50;++i) for (int j=1;j<50;++j) f[i][j]=f[i-1][j]+f[i-1][j-1]; cout<<CC(t)-CC(s-1); return 0; }