Question code : BDGFT. I tried implementing the approach of editorial but get TLE

//MY CODE AND HOW CAN I IMPROVE IT.::
I m sure that it is O(N*sqrt(N)).

#include
#include<math.h>
using namespace std;

int main() {
long T;
cin>>T;
while(T–)
{
string s;
cin>>s;

    long size=s.size(),x=1,ans=0;
    for(x;x<=pow(size,0.5);x++)
    {
        long req_size=x*x+x,cnt1=0,i=0,j=i+req_size-1;
        if(req_size>size){break;}
        for(i=0;i<req_size;i++,j++)
        {
            if(s[i]=='1'){ cnt1++;}
            
        }
        i--;j--;
        if(cnt1==x){ans++;}
        while(i<=s.size()-req_size)
        {
            if(s[i-1]=='1'){cnt1--;}
            if(j<size && s[j]=='1'){cnt1++;}
            if(cnt1==x){ans++;}
            i++;j++;
        }
    }
    cout<<ans<<endl;
}
return 0;

}