Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int bit[100];
- int bitcheck(long long int num,int lim)
- {
- fill(bit,bit+100,0);
- int i=0;
- while(num!=0)
- {
- bit[i++]=num%2;
- num/=2;
- }
- int dp[100];
- fill(dp,dp+100,0);
- if(bit[0]==1) dp[0]=1;
- else dp[0]=0;
- //cout<<"bot ";
- for(int k=1;k<=60;k++){
- //cout<<bit[k]<<" ";
- if(bit[k]==1 && bit[k-1]==1) dp[k]=dp[k-1]+1;
- else if (bit[k]==1 && bit[k-1]==0) dp[k]=1;
- else
- dp[k]=0;
- }
- //cout<<endl;
- int max=0;
- for(int p=0;p<i;p++)
- {
- //cout<<dp[p]<<" ";
- if(dp[p]>=max) max=dp[p];
- }
- //cout<<endl;
- if(max>=lim) return 1;
- else
- return 0;
- }
- int main() {
- int n,k;
- cin>>n>>k;
- long long int count=0;
- long long int s=pow(2,n);
- for(long long int i=0;i<s;i++)
- {
- int res=bitcheck(i,k);
- //cout<<"res "<<res<<endl;
- if(res) count++;
- }
- long long int gcd1=__gcd(count,s);
- cout<<count/gcd1<<"/"<<s/gcd1;
- // your code goes here
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment