水博弈!
題意:兩個自然數,每個人都能讓較大的數減去較小的數的倍數,誰先誰其中一個數成0就win!
顯然,當a>b&&a<2*b時就是個純模擬步驟就行了(這裡a都是已處理大於b的),當a>=2*時,先下的就有了決定權,故能靠智商取勝!!
#include#include #include using namespace std; int main() { int n,m; int t; while(~scanf("%d%d",&n,&m)&&(n||m)) { if(n =2*m);) { t=m; m=n-m; n=t; flag=!flag; } if(flag) printf("Stan wins\n"); else printf("Ollie wins\n"); } return 0; }