Please find me the bug in this logic.
#include<bits/stdc++.h>
using namespace std;
typedef long long int ll;
bool recurse(ll n,ll original){
if(n==original){
return true;
}
if(n>original){
return false;
}
return (recurse(n*10,original) or recurse(n*20,original));
}
int main(){
ll t;
cin>>t;
while(t–){
ll n;
cin>>n;
ll original=n;
if(recurse(1,original)){
cout<<“YES”<<endl;
}
else{
cout<<“NO”<<endl;
}
}
}
*Yes *No. , hahahahaha codechef shit!
3 Likes
It is still wrong !!! after correcting capitalisation !!!
I think it should pass…
t=100, levels in recursion tree = ~18-19, so time should be O(t*(2^19)) =O(52428800) …
1 Like
Sorry it passed… GOT AC AFTER converting YES->Yes and NO->No
https://www.codechef.com/viewsolution/27511981
why this solution giving TLE?
hetp111
11
Nvm… that was a different problem… 
1 Like
shim98
12
yeah my solution was same
it should work
2 Likes
i also do not know why my recursive giving wrong answer
here the code please help me out
#include<bits/stdc++.h>
using namespace std;
#define lli long long int
lli f(lli a,lli b)
{if(a>b)
{return 0;
}
if(a==b)
{return 1;
}
if(f(10a,b))
{return 1;
}
if(f(20a,b))
{return 1;
}
}
int main()
{lli t,n;
cin>>t;
while(t–)
{cin>>n;
if(f(1,n))
{cout<<“Yes”<<"\n";
}
else
{cout<<“No”<<"\n";
}
}
return 0;
}
hetp111
14
Return zero at the end of the function f.