Skip to content

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);
}