 # Help me resolve this issue . This is a long challenge problem

``````                             #include <iostream>
#include <cmath>
// 3
//  xy    1 1
//  xyxxy 3 2
//  yy    0 2

int main()
{
int t;
std::cin >> t;
while(t--)
{
std::string s;
std::cin >> s;
int count1=0 ;
int count2=0;
for (int i=0;i<s.length();++i)
{
if(s[i]=='x')
++count1;

else
++count2;
}

if(count1==0 || count2==0)
{
std::cout << 0 <<'\n';
}
else
{
std::cout << floor((count2+count1)/2) << '\n';

}

}
return 0;

}``````

Your logic seems to be completely wrong. You cannot depend on the count of x and y. You need to take care of their positions too.
If and only if x is adjacent to y or vice-versa, you increase the pair count by 1.
AC code:

``````#include <bits/stdc++.h>

using namespace std;

int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int t;
cin >> t;
while (t--)
{
string s;
cin >> s;
long long p = 0;
for (int i = 0; i < s.size()-1; ++i)
{
if ((s[i] == 'x' && s[i+1] == 'y') || (s[i] == 'y' && s[i+1] == 'x'))
{
p += 1;
++i;
}
}
cout << p << '\n';
}
}
``````

Thanks !