Can Anyone Please explain why I am getting TLE or please explain how to optimize the above solution
#include<bits/stdc++.h>
using namespace std;
int main() {
// your code goes here
int t;
std::cin >> t;
long long mod=4294967296;
while(t--)
{
int q,s1,a,b;
cin>>q>>s1>>a>>b;
bitset<1000000002> bt;
long long prev=s1,num=0;
long long ans=0;
while(q--){
num=prev/2;
if(prev&1){
bt[num]= (bt[num] | 1);
}else{
bt[num] = (bt[num] & 0);
}
prev=(((a*prev)%mod)+(b%mod))%mod;
}
string s=bt.to_string();
reverse(s.begin(),s.end());
for(int i=0;i<s.length();i++){
ans+=(s[i]-'0');
}
cout<<ans<<"\n";
}
return 0;
}
Link to problem : CHEFQUE
Any help would be appreciated