other
原始文件为 cpp 代码,本文是转换后的 Markdown 文件。
int edge;
bool MaxSearch(int A,int B)
{
if(A>=5) return true;
if(B>=5) return false;
if(edge==18) return A>B;
for(int i=1;i<=18;i++)
if(!edges[i])
{
edges[i]=true; edge++;
int nt=Num(); bool tmp;
if(nt>A+B) tmp=MaxSearch(nt-B,B); //三角形变多了
else tmp=MinSearch(A,B);
edges[i]=false; edge--;
if(tmp==true) return true;
}
return false;
}
bool MinSearch(int A,int B)
{
if(A>=5) return true;
if(B>=5) return false;
if(edge==18) return A>B;
for(int i=1;i<=18;i++)
if(!edges[i])
{
edges[i]=true; edge++;
int nt=Num(); bool tmp;
if(nt>A+B) tmp=MinSearch(A,nt-A); //再走一次
else tmp=MaxSearch(A,B);
edges[i]=false; edge--;
if(tmp==false) return false;
}
return true;
}
int main()
{
A=B=0; int next=1; //1代表A
bool ans;
if(next) ans=MaxSearch(A,B);
else ans=MinSearch(A,B);
}