题解

1 条题解

  • 0
    @ 2020-09-20 13:21:13

    简单模拟题

    每次操作后直接算\(\gcd \)约分即可

    代码如下

    #include <bits/stdc++.h>
    using namespace std;
    int main ()
    {
        int n;
        cin>>n;
        string str;
        cin>>str;
        int len=str.size();
        int a=0,b=0; //初始时比分都是0
        for (int i=0;i<len;i++)
        {
            if (str[i]=='A')
            {
                a++;
            }
            else
            {
                b++;
            } // 直接硬加
            if ((a!=0)&&(b!=0)) // 都不是0才约分
            {
                int gcd=__gcd(a,b); // 算gcd
                a/=gcd;
                b/=gcd; // 同时除掉gcd
            }
            if (a==n) // 除掉后a=n
            {
                cout<<"Alice"<<endl<<a<<" "<<b<<endl; //Alice获胜,直接按要求输出即可
                return 0; // 后序的赛程没有意义,直接退出
            }
            if (b==n)
            {
                cout<<"Bob"<<endl<<a<<" "<<b<<endl;
                return 0; // 与前面同理
            }
        }
        cout<<"NO"<<endl<<a<<" "<<b<<endl; // 还没有退出,说明没有决出胜利,按要求输出
    }
    
  • 1

信息

ID
1001
难度
9
分类
(无)
标签
递交数
1
已通过
1
通过率
100%
上传者