2 solutions

  • 1
    @ 2025-6-6 20:25:51
    #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;//计算平均纸牌数 
        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;
    }
    
    • 0
      @ 2025-5-17 14:14:40
      #iostream<inclued>
      using namespace std;
      const int N=110;
      int a[N];
      int main()
      {
      	int n;
      	string si;
      	cin>>s;
      	bool s=0;
      	for(int i=0;i<n;i++)
      	{
      		cin>>a[i];
      		si+=a[i];
      	}
      	int res=1;
      	int ave=s/si;
      	if(ave*n==s) res=1;
      	else
      	{
      		for(int i=len(si);i>=n;n--)
      		{
      			if(n==a[i])
      			{
      				a[i+1]=a[i+1]-(ave-a[i]);
      			}
      		}
      	}
      	cout<<res;
       	return 0;
      }
      
      
      • 1

      Information

      ID
      1012
      Time
      1000ms
      Memory
      256MiB
      Difficulty
      3
      Tags
      (None)
      # Submissions
      38
      Accepted
      15
      Uploaded By