Thanks a lot! I’m pretty sure this should get 100 AC but it’s only getting 40 
#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, res = "";
cin >> s;
long long a = 0, b = 0;
string ns = s;
for (int i = 0; i < ns.size(); ++i) if ((int)ns[i] > 58) ns[i] = '0'; else ns[i] = '1';
char preva = '.';
int sizea = 0;
for (int i = 0; i < ns.size(); ++i)
{
if (preva == '.')
{
preva = ns[i];
++sizea;
} else {
if (ns[i] == preva) ++sizea;
else {
if (preva == '0') a += (sizea*8);
else a += 32;
preva = '.';
--i;
sizea = 0;
}
}
if (i == ns.size()-1)
{
if (preva == '0') a += (sizea*8);
else a += 32;
}
}
char prev = '.';
int size = 0;
for (int i = 0; i < s.size(); ++i)
{
if (prev == '.')
{
prev = s[i];
++size;
} else {
if (s[i] == prev) ++size;
else {
string sn;
sn = (char)prev;
res.append(sn);
if (size > 1) res.append(to_string(size));
prev = '.';
--i;
size = 0;
}
}
if (i == s.size()-1)
{
string sn;
sn = (char)prev;
res.append(sn);
if (size > 1) res.append(to_string(size));
}
}
for (int i = 0; i < res.size(); ++i) if ((int)res[i] > 58) res[i] = '0'; else res[i] = '1';
char nprev = '.';
int nsize = 0;
for (int i = 0; i < res.size(); ++i)
{
if (nprev == '.')
{
nprev = res[i];
++nsize;
} else {
if (res[i] == nprev) ++nsize;
else {
if (nprev == '0') b += (nsize*8);
else b += 32;
nprev = '.';
--i;
nsize = 0;
}
}
if (i == res.size()-1)
{
if (nprev == '0') b += (nsize*8);
else b += 32;
}
}
cout << a-b << '\n';
}
}
I know my code is sorta unreadable and has a lot of poor variable names because I was in a hurry.
But I don’t know for what case it fails to get 100.