For this Question: Given an integer N, find all the numbers less than N which contains only digits 3, 4, and 5. Each digit should be present at least one time.The input contains a single integer N.

Constraints:-
1 <= N <= 1000000000Print the count of such numbers which contains only digits 3, 4, and 5.Sample Input:-
500

Sample Output:-
4

Explanation:-
345. 435. 453, 354

Sample Input:-
1000


Sample Output:-
6, I have written this Solution Code: #include<bits/stdc++.h>
#define rep(i,n) for(int i=0;i<n;i++)
using namespace std;
using ll = long long;
int ans = 0;
int n = 0;
int ok;
 
void dfs(ll x,int ok){
    if(x > n) return;
    if(ok==7) ans++;
    dfs(x * 10 + 3,ok|1);
    dfs(x * 10 + 4,ok|2);
    dfs(x * 10 + 5,ok|4);
    return;
}
 
 
int main(){
    cin >> n;
    int x  = 0;
    dfs(x,0);
 
    cout << ans << endl;
    return 0;
 
 
}, In this Programming Language: C++, Now tell me if this Code is compilable or not?