比赛 |
[不是Rapiz出的]农场主钦定NOIP模拟赛1 |
评测结果 |
AAAAAAAAAA |
题目名称 |
Play with Power |
最终得分 |
100 |
用户昵称 |
Rapiz |
运行时间 |
0.380 s |
代码语言 |
C++ |
内存使用 |
0.67 MiB |
提交时间 |
2016-11-09 10:24:32 |
显示代码纯文本
#include<cstdio>
#define file(x) "play."#x
typedef long long ll;
const int A = 10010,B = 40,INF=1<<30;
int n;
bool f[A][B];
bool ck(ll a,ll r){
ll s = 1;
while (r){
if (r&1) s *= a;
a *= a,r >>= 1;
if (s > n) return 1;
}
return 0;
}
int main(){
freopen(file(in),"r",stdin);
freopen(file(out),"w",stdout);
int T;
scanf("%d%d",&n,&T);
for (int i = A - 1;i;i--) for (int j = B - 1;j;j--) {
if (ck(i,j + 1) && ck(i + 1,j)) f[i][j] = 0;
else {
f[i][j] = 0;
if (!ck(i + 1,j)) f[i][j] |= !f[i + 1][j];
if (!ck(i,j + 1)) f[i][j] |= !f[i][j + 1];
}
}
while (T--) {
int a,b;scanf("%d%d",&a,&b);
if(ck(a,b + 1) && ck(a + 1,b)) printf("Stas\n");
else if (a == 1 && ck(a + 1,b)) printf("Missing\n");
else if (b == 1) printf("%s\n",(n-a)%2?"Masha":"Stas");
else printf("%s\n",f[a][b]?"Masha":"Stas");
}
}