How can i avoid TLE in this problem
include
using namespace std;
typedef long long int ll;
map arr;
map brr;
ll f(ll n)
{
if(brr[n]!=0)
return brr[n];
ll temp=n;
ll c=1;
while(temp>0)
{
if(temp%2==1)
break;
temp/=2;
if(brr[temp]!=0)
{
c+=brr[temp];
break;
}
c++;
}
brr[n]=c;
return c;
}
ll T(ll n)
{
if(n==0)
return 0;
if(arr[n]!=0)
return arr[n];
return pow(f(n*(n-1)),3)+T(n-2);
}
int main()
{
ios_base::sync_with_stdio (false);
ll t;
cin>>t;
while(t--)
{
ll n;
cin>>n;
ll p=T(n);
arr[n]=p;
cout<<p<<"\n";
}
}