Help me in solving SUSSTR problem

My issue

provide code for this

My code

#include <bits/stdc++.h>
using namespace std;

void solution(){
    int n;
    cin>>n;
    string s;
    cin>>s;
    deque<char> dq;
    
    int p1=0;
    int p2=n-1;
    for(int i=0; i<n; ++i)
    {
        if(i&1){
            if(s[p2]=='1')
            dq.push_front(s[p2--]);
            else
            dq.push_back(s[p2--]);
        }
        else{
            if(s[p1]=='1')
            dq.push_front(s[p1++]);
            else
            dq.push-back(s[p1++]);
        }
    }
    string ans(dq.begin(), dq.end());
    cout<< ans << '\n';
}

int main() {
	int T;
	cin>>T;
	while(T--) solution();
	return 0;

}

Learning course: Stacks and Queues
Problem Link: Suspense String Practice Problem in Stacks and Queues - CodeChef

@adi_1516
here plzz refer my c++ code

#include <bits/stdc++.h>
using namespace std;

int main() {
	// your code goes here
	int t;
	cin>>t;
	while(t--)
	{
	    int n;
	    cin>>n;
	    string s;
	    cin>>s;
	    string ans;
	    for(int i=0,j=n-1,k=0;k<n;k++)
	    {
	        if(k%2==0)
	        {
	            if(s[i]=='0')
	            {
	                ans='0'+ans;
	            }
	            else
	            ans.push_back('1');
	            i++;
	        }
	        else
	        {
	            if(s[j]=='1')
	            {
	                ans='1'+ans;
	            }
	            else
	            ans.push_back('0');
	            j--;
	        }
	    }
	    cout<<ans<<endl;
	}

}