链接:https://www.nowcoder.com/acm/contest/125/A
来源:牛客网
the first line contains tree integer n,m,k(1 <= n,m,k <= 10
9
)
print ‘Macle‘ if Macle wins or ‘Tony‘ if Tony wins,you should print everything without quotes.
Tony
有n根m长的绳子,每次你可以把任意一根绳子分成不小于k长度的任意根绳子。分到的绳子在下次可以被分解。Macle先开始,谁先不能对这些绳子进行操作就输了。
如果n是偶数的话,那么Macle肯定输了。Macle要赢的条件是:(1)n是奇数的(2)m有小于k的因子,这样我就可以一次性把m分解成一个Tony无法再分解的数
#include<algorithm> #include<iostream> #include<cstring> #include<cstdlib> #include<cstdio> #include<string> #include<cmath> #define debug(a) cout << #a << " " << a << endl using namespace std; typedef long long ll; const ll inf = 1e9; const ll maxn = 1e3 + 10; ll gcd( ll a, ll b ) { if( a == 0 ) { return b; } if( b == 0 ) { return a; } return gcd( b, a%b ); } int main() { std::ios::sync_with_stdio(false); ll n, m, k; while( cin >> n >> m >> k ) { ll num = m / k; bool flag = false; for( ll i = num; i > 1; i -- ) { if( m % i == 0 ) { flag = true; break; } } if( ( n & 1 ) && flag ) { cout << "Macle" << endl; } else { cout << "Tony" << endl; } } return 0; }
牛客网 湖南大学2018年第十四届程序设计竞赛重现赛 A game
原文:https://www.cnblogs.com/l609929321/p/9097328.html