5 solutions

  • 4
    @ 2025-1-2 11:23:12

    算法分析

    根据一轮的出拳顺序得到nn次出拳结果,然后依次比较,得到最后的比较结果

    #include<bits/stdc++.h>
    using namespace std;
    const int N=210;
    int a[N],b[N];
    int main()
    {
    	int n,na,nb;
    	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=na+1;i<=n;i++) //算出后面的结果 
    		a[i]=a[i-na];
    	for(int i=nb+1;i<=n;i++)
    		b[i]=b[i-nb];
    	int res=0;
    	//0 石头 2剪刀 5布 
    	for(int i=1;i<=n;i++)
    	{
    		if(a[i]==0&&b[i]==2||a[i]==2&&b[i]==5||a[i]==5&&b[i]==0) //a获胜的情况 
    		{
    			res++;
    		}else if(a[i]==b[i]) //相同 
    		{
    			;
    		}else
    		{
    			res--;
    		}
    	}
    	if(res>0) cout<<"A";
    	else if(res<0) cout<<"B";
    	else cout<<"draw";
    	return 0;
    } 
    
    • 1
      @ 2025-8-18 15:38:22
      #include<bits/stdc++.h>
      using namespace std;
      const int N=210;
      int a[N],b[N];
      int main()
      {
      	int n,na,nb;
      	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=na+1;i<=n;i++) 
      		a[i]=a[i-na];
      	for(int i=nb+1;i<=n;i++)
      		b[i]=b[i-nb];
      	int res=0;
      	for(int i=1;i<=n;i++)
      	{
      		if(a[i]==0&&b[i]==2||a[i]==2&&b[i]==5||a[i]==5&&b[i]==0)  
      		{
      			res++;
      		}else if(a[i]==b[i]) 
      		{
      			;
      		}else
      		{
      			res--;
      		}
      	}
      	if(res>0) cout<<"A";
      	else if(res<0) cout<<"B";
      	else cout<<"draw";
      	return 0;
      } 
      
      • -1
        @ 2025-3-6 18:40:02
        #include<bits/stdc++.h>
        using namespace std;
        const int A=210;
        int a[A],b[A];//a数组表示小七赢得次数,b数组表示奶龙赢得次数
        int main()
        {
            int n,na,nb;
            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=na+1;i<=n;i++)
            {
                a[i]=a[i-na];
            }
            for(int i=nb+1;i<=n;i++)
            {
                b[i]=b[i-nb];
            }
            int x=0;
            for(int i=1;i<=n;i++)
            {
                if(a[i]==0&&b[i]==2||a[i]==2&&b[i]==5||a[i]==5&&b[i]==0)
                {
                    x++;
                }
                else if(a[i]==b[i])
                {
                    ;
                }
                else
                {
                    x--;
                }
            }
            if(x>0)
                {
                    cout<<"A";
                }
                else if(x==0)
                {
                    cout<<"draw";
                }
                else
                {
                    cout<<"B";
                }
            return 0;
        }
        

        绝对是本人亲自写的 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 给好评我下次继续发题解

        • -1
          @ 2025-3-6 18:38:37
          #include<bits/stdc++.h>
          using namespace std;
          const int A=210;
          int a[A],b[A];//a数组表示小七赢得次数,b数组表示奶龙赢得次数
          int main()
          {
              int n,na,nb;
              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=na+1;i<=n;i++)
              {
                  a[i]=a[i-na];
              }
              for(int i=nb+1;i<=n;i++)
              {
                  b[i]=b[i-nb];
              }
              int x=0;
              for(int i=1;i<=n;i++)
              {
                  if(a[i]==0&&b[i]==2||a[i]==2&&b[i]==5||a[i]==5&&b[i]==0)
                  {
                      x++;
                  }
                  else if(a[i]==b[i])
                  {
                      ;
                  }
                  else
                  {
                      x--;
                  }
              }
              if(x>0)
                  {
                      cout<<"A";
                  }
                  else if(x==0)
                  {
                      cout<<"draw";
                  }
                  else
                  {
                      cout<<"B";
                  }
              return 0;
          }
          
          • -3
            @ 2025-1-8 19:47:26
            #include<bits/stdc++.h>
            using namespace std;
            const int N=210;
            int a[N],b[N];
            int main()
            {
            	int n,na,nb;
            	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=na+1;i<=n;i++)
            		a[i]=a[i-na];
            	for(int i=nb+1;i<=n;i++)
            		b[i]=b[i-nb];
            	int res=0;
            	for(int i=1;i<=n;i++)
            	{
            		if(a[i]==0&&b[i]==2||a[i]==2&&b[i]==5||a[i]==5&&b[i]==0)
            		{
            			res++;
            		}else if(a[i]==b[i])//相同
            		{
            			; 
            		}else
            		{
            			res--;
            		} 
            	}
            	if(res>0) cout<<"A";
            	else if(res<0) cout<<"B";
            	else cout<<"draw";
            	return 0;
            }
            
            • 1

            Information

            ID
            2144
            Time
            1000ms
            Memory
            128MiB
            Difficulty
            3
            Tags
            (None)
            # Submissions
            53
            Accepted
            22
            Uploaded By