5 solutions

  • 2
    @ 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-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;
        }
        
        • -1
          @ 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;
          }
          
          • -4
            @ 2025-1-5 16:15:58
            #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

            Information

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