My code (C++17) fails on the fourth test case of the sorting problem linked. Thanks!
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll;
ll d (ll i) {ll r {0}; while (i != 0) {i /= 10; ++r;} return r;}
ll o (ll i) {ll r {0}; while (i % 10 == 0) {i /= 10; ++r;} return r;}
bool s (pair<ll, ll> a, pair<ll, ll> b) {bool r {}; if (a.second < b.second) {r = {true};} else if (a.second == b.second) {r = {a.first < b.second};} else {r = {false};} return !r;}
int main() {
ll t {}; cin >> t;
while (t > 0) {
--t;
ll n {}, m {}; cin >> n >> m;
pair<ll, ll> a[n];
for (ll i {0}; i < n; ++i) {ll j {}; cin >> j; a[i] = {d(j), o(j)};}
sort(a, a + n, s);
if (n == 1) {if (a[0].first - a[0].second >= m + 1) {cout << "Sasha\n";} else {cout << "Anna\n";} continue;}
ll sasha {0};
for (ll i {0}; i < n; ++i) {sasha += a[i].first; if (i % 2 == 0) {sasha -= a[i].second;}}
if (sasha >= m + 1) {cout << "Sasha\n";} else {cout << "Anna\n";}
}
}