# hroc104-Editorial

Here is the Solution

``````
<h2>int main()
{
int T;
cin >> T;
while (T--)
{

string S;

cin >> S;

string S2;
cin >> S2;

int count1 = 0;

int count0 = 0;

int countq = 0;

for (int i = 0; i < S.length(); i++)
{

if (S[i] == '0')
{

count0++;

}
else if (S[i] == '1')
{

count1++;

}
else
{

countq++;

}

}

int c1 = 0;
int c0 = 0;

for (int i = 0; i < S2.length(); i++)
{

if (S2[i] == '0')
c0++;

else
c1++;

}

if (c0 > count0 + countq)
{

cout << "-1\n";

continue;

}

int zeros = c0 - count0;

if (zeros > 0)
{

int ct = 0;

for (int i = 0; i < S.length(); i++)
{

if (S[i] == '?' and S2[i] == '0' and ct < zeros)
{

S[i] = '0';

ct++;

}

}

for (int i = 0; i < S.length(); i++)
{

if (S[i] == '?' and ct < zeros)
{

S[i] = '0';

ct++;

}
else if (S[i] == '?')
{

S[i] = '1';

}

}

}
else
{

for (int i = 0; i < S.length(); i++)
{

if (S[i] == '?')
S[i] = '1';

}

}

int zo = 0, oz = 0;

int ans = countq;

for (int i = 0; i < S.length(); i++)
{

if (S[i] == '0' and S2[i] == '1')
zo++;

else if (S[i] == '1' and S2[i] == '0')
oz++;

}

ans += oz + (zo - oz);

cout << ans << endl;

}
return 0;

}``````