4 solutions

  • 6
    @ 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;
    }
    
    • 1
      @ 2026-5-10 16:17:11
      🤷‍♀️🤷‍♀️🤷‍♀️
      🤷‍♂️🤷‍♂️🤷‍♂️🤷‍♂️🤷‍♂️🤷‍♂️🤷‍♂️
      
      • 1
        @ 2026-5-10 16:16:26
        #include<bits/stdc++.h>
        using namespace std;
        int a[37420];
        int main()
        {
            int n,s=0;cin>>n;
            for(int i=1;i<=n;i++)
            {
                cin>>a[i];
                s+=a[i];
            }
            int res=0;    
            int t=s/n;
            if(t*n!=s)
            {
                cout<<-1;
                return 0;
            }
            else
            {
                for(int i=1;i<=n;i++)
                {
                    if(a[i]!=t)
                    {
                        res++;
                        a[i+1]=a[1+i]-(t-a[i]);
                    }
                }
            }
            cout<<res;
            return 0;
        }
        
        • -4
          @ 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
        73
        Accepted
        27
        Uploaded By