| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
大数据表示并不是必须的,附代码解法,必胜状态的递归搜索
#include <cstdio>
#include <algorithm>
using namespace std;
bool getR(int a, int b){
if(!a) return false;
if(b % a == 0) return true;
int c = b / a;
bool ans = false;
for(int i = c; i >= 1; i--){
int newb = b - a * i;
ans |= !getR(min(a, newb), max(a, newb));
if(ans) break;
}
return ans;
}
int main(){
int a, b;
while(~scanf("%d%d", &a, &b) && a){
if(a > b) swap(a, b);
bool ans = getR(a, b);
printf("%s wins\n", ans ? "Stan" : "Ollie");
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator