40分求调QAQ
查看原帖
40分求调QAQ
1401647
Leaf59楼主2024/9/30 10:52
#include<bits/stdc++.h>
using namespace std;
int arr[10005],n,sum;
int st=0;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>arr[i];
        sum+=arr[i];
    }
    sum/=n;
    for(int i=1;i<=n;i++){
        arr[i]-=sum;
    }
    for(int i=1;i<n;i++){
        if(arr[i]!=0){
            if(arr[i]<0){
                bool f=false;
                for(int j=i+1;j<=n;j++){
                    if(0-(arr[j])==arr[i]){
                        f=true;
                        arr[j]=arr[i]=0;
                        break;
                    }
                }
                if(!f){
                    for(int j=i+1;j<=n;j++){
                        if(arr[j]>0){
                            if(arr[j]< -(arr[i])){
                                
                                arr[i]+=arr[j];
                                arr[j]=0;
                            }
                            else{
                                arr[j]+=arr[i];
                                arr[i]=0;
                            }
                        }
                        if(arr[i]==0){
                            break;
                        }
                    }
                }
            }
            else{
                bool f=false;
                for(int j=i+1;j<=n;j++){
                    if(0-(arr[j])==arr[i]){
                        f=true;
                        arr[j]=arr[i]=0;
                        break;
                    }
                }
                if(!f){
                    for(int j=i+1;j<=n;j++){
                        if(arr[j]<0){
                            if(-(arr[j])<arr[i]){
                                
                                arr[j]+=arr[i];
                                arr[i]=0;
                            }
                            else{
                                arr[i]+=arr[j];
                                arr[j]=0;
                            }
                        }
                        if(arr[i]==0){
                            break;
                        }
                    }
                }
            }
            st++;
        }
    }
    cout<<st;
return 0;
}

2024/9/30 10:52
加载中...