261 条题解

  • 0
    @ 2026-3-12 17:02:55
    using namespace std;
    // 判断 a 是否赢 b
    bool win(int a, int b) 
    {
        if( (a == 0 && b == 2) || (a == 2 && b == 5) || (a == 5 && b == 0))
    		return true;
    	else
    		return false;
    }
    int mo(int a, int b,int c)
    {
    	if(a%b!=0)
    		return a%b;
    	else
    		return c;
    }
    int main() 
    {
        int N, NA, NB; 
    	int A[200], B[200]; 
    	int winA = 0, winB = 0;  
        cin >> N >> NA >> NB; 
        for (int i = 1; i <= NA; i++) 
    		cin >> A[i];
        for (int i = 1; i <= NB; i++) 
    		cin >> B[i];       
        for (int i = 1; i <= N; i++)  
    	{		
    		int a_move = A[mo(i,NA,NA)]; 		
    		int b_move = B[mo(i,NB,NB)];	
            if (win(a_move, b_move))  
    		{
            	winA++;
            } 
    		else if (win(b_move, a_move))
    		{
            	winB++;
            }
        }
        if (winA > winB) 
    	{
            cout << "A" <<winA-winB<< endl;
        } 
    	else if (winB > winA) 
    	{
            cout << "B" << winB-winA<<endl;
        } 
    	else 
    	{
            cout << "draw" << endl;
        }
        
        return 0;
    }
    

    信息

    ID
    104
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    237
    已通过
    64
    上传者