2 solutions

  • 1
    @ 2024-6-22 13:39:14
    #include<bits/stdc++.h>
    using namespace std;
    const int N=110;
    int a[N];
    int main()
    {
        int n;
        cin>>n;
        int s=0;
        for(int i=1;i<=n;i++)
        {
            cin>>a[i];
            s+=a[i];
        }
        int res=0;
        int ave=s/n;//计算平均纸牌数 
        for(int i=1;i<=n;i++)
        {
            if(ave!=a[i]) //当前不是平均值 
            {
                res++;
                a[i+1]=a[i+1]-(ave-a[i]); //从a[i+1] 移动差值过来 
            }
        }
        cout<<res;
        return 0;
    }
    
    
    • 0
      @ 2024-7-19 11:08:40
      #include
      using namespace std;
      const int N=110;
      int a[N];
      int main()
      {
          int n;
          cin>>n;
          int s=0;
          for(int i=1;i<=n;i++)
          {
              cin>>a[i];
              s+=a[i];
          }
          int res=0;
          int ave=s/n;//计算平均纸牌数 
          if(ave*n!=s) //不能够均分 
          {
              res=-1; 
          } 
          else
          {
              for(int i=1;i<=n;i++)
              {
                  if(ave!=a[i]) //当前不是平均值 
                  {
                      res++;
                      a[i+1]=a[i+1]-(ave-a[i]); //从a[i+1] 移动差值过来 
                  }
              }
           
          }
          cout<<res;
          return 0;
      }
      
      • 1

      Information

      ID
      649
      Time
      1000ms
      Memory
      128MiB
      Difficulty
      3
      Tags
      # Submissions
      47
      Accepted
      17
      Uploaded By