这题是个博弈论,结论出奇简单= =

  • 如果A包含B,或把B翻转后A包含B,Manao wins,否则Manao loses……

考虑如果A怎样都不包含B,B每回合不停翻转就行了;否则A都可以变得和B相同。

#include <bits/stdc++.h>
using namespace std;
int w,x,d;

class TheNumberGame {
public:
    string determineOutcome( int A, int B );
};

int pd(int A,int B){
  while(A){
    if (A%w==B) return 1;
    A/=10;
  }
  return 0;
}

string TheNumberGame::determineOutcome(int A, int B) {
    w=1;
    x=B,d=0;
    while(x){
      w*=10;
      d=d*10+x%10;
      x/=10;
    }
    if (pd(A,B)||pd(A,d)) return "Manao wins";
    return "Manao loses";
}