先来看看比较显然的几个局面

(a,0) 先手必败

(a,a) 先手必胜

(a,ak) 先手必胜

(a,ak+r),k>1 先手必胜,因为先手有主动权把(a,r)让给后手或留给自己

对于开局(a,r),r<a&&a/r<2,比较难分析,我们用暴力直接跑出结果

挑战程序设计竞赛把这种主动权成为自由度,名字真高端

这次的代码写的不怎么简练,不过能AC

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<string>
#include<vector>
#include<stack>
#include<queue>
#include<set>
#include<map>
#define rep(i,j,k) for(register int i=j;i<=k;i++)
#define rrep(i,j,k) for(register int i=j;i>=k;i--)
#define erep(i,u) for(register int i=head[u];~i;i=nxt[i])
#define iin(a) scanf("%d",&a)
#define lin(a) scanf("%lld",&a)
#define din(a) scanf("%lf",&a)
#define s0(a) scanf("%s",a)
#define s1(a) scanf("%s",a+1)
#define print(a) printf("%lld",(ll)a)
#define enter putchar('\n')
#define blank putchar(' ')
#define println(a) printf("%lld\n",(ll)a)
#define IOS ios::sync_with_stdio(0)
using namespace std;
const int maxn = 1e6+11;
const int oo = 0x3f3f3f3f;
const double eps = 1e-7;
typedef long long ll;
ll read(){
ll x=0,f=1;register char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*f;
}
ll a,b;
int main(){
while(cin>>a>>b){
if(a==0&&b==0) break;
if(a<b) swap(a,b);
if(a==0){
printf("Ollie wins\n");
continue;
}
if((a%b==0)||(a%b!=0&&a/b>1)){
printf("Stan wins\n");
continue;
}
bool flag=0;
while(1){
if(a<b) swap(a,b);
a=a-b;
if(a<b) swap(a,b);
if(a==0){
printf("%s wins\n",flag?"Ollie":"Stan");
break;
}
if((a%b==0)||(a%b!=0&&a/b>1)){
printf("%s wins\n",flag==0?"Ollie":"Stan");
break;
}
flag^=1;
}
}
return 0;
}

最新文章

  1. Python3学习(一)-基础、数据类型、变量、字符串和编码、list&amp;tuple、if、for、while、dict、set、函数与参数
  2. 数组遍历map和each使用
  3. find命令查找文件,并排除相应路径
  4. 如何在Linux下使用Gitblit工具创建Git仓库服务
  5. C++ 标准库类型-String,Vector and Bitset
  6. Java for LeetCode 148 Sort List
  7. Data Base MySQL的常用命令
  8. HttpClient Post Get请求方法,留在以后可能会用到
  9. WorkFlow介绍及用法
  10. 内核添加对yaffs2文件系统的支持
  11. JavaScript面向对象轻松入门之抽象(demo by ES5、ES6、TypeScript)
  12. form 表单处理
  13. 在moba游戏里面模拟实现绝地求生毒雾圈功能
  14. Git更新本地仓库
  15. java使用顺序存储实现队列
  16. 04LaTeX学习系列之---overleafz在线编辑平台的使用
  17. TP5中的小知识
  18. Codeforces339D(SummerTrainingDay06-A 线段树)
  19. linux find 命令查找文件和文件夹
  20. MySQL修改密码和忘记ROOT密码

热门文章

  1. ROS 下使用3D激光雷达 velodyne vlp-16
  2. 468C Hack it!
  3. 关于Rest Framework中View、APIView与GenericAPIView的对比分析
  4. Java学习——JSTL标签与EL表达式之间的微妙关系
  5. Python基础-3
  6. Python基础入门-实现计算器多种姿势
  7. 无法解析的外部符号 _WinMain@16(原)
  8. System.Web.UI.Page事件执行顺序
  9. python学习手册 (第3版)
  10. duilib入门简明教程 -- 第一个程序 Hello World(3)