题解
游戏规则总结一句话:
安娜要尽可能删掉后导零(翻转),萨沙要尽可能保护后导零(连接),问剩余数字的位数能否达到 \(m+1\) 位
直接模拟即可,统计每个数后导零的长度, 然后按照安娜先手的规则求出能保留多少位后导零,最后判断长度
code
#include<bits/stdc++.h>
using namespace std;
inline void read(long long &x) {
x = 0;
long long flag = 1;
char c = getchar();
while(c < '0' || c > '9'){
if(c == '-')flag = -1;
c = getchar();
}
while(c >= '0' && c <= '9') {
x = (x << 3) + (x << 1) + (c ^ 48);
c = getchar();
}
x *= flag;
}
inline void write(long long x) {
if(x < 0) {
putchar('-');
x = -x;
}
if(x > 9)
write(x / 10);
putchar(x % 10 + '0');
}
priority_queue<long long> q;
long long len=0;
void add(long long now) {
long long cnt=0;
while(now && now%10==0)
{
cnt++;
now /= 10;
}
while(now)
{
len++;
now/=10;
}
if(cnt) q.push(cnt);
}
int main() {
long long t;
read(t);
while(t--) {
long long n, m, x;
read(n);
read(m);
for(long long i = 1; i <= n; i++) {
read(x);
add(x);
}
int k=0;
while(!q.empty())
{
len+=q.top()*k;
q.pop();
k=1-k;
}
if(len>=m+1)puts("Sasha");
else puts("Anna");
len=0;
}
return 0;
}
标签:10,cnt,Gift,read,long,while,now,Day,Anna
From: https://www.cnblogs.com/pure4knowledge/p/18021790