玄学 求助大佬
查看原帖
玄学 求助大佬
253620
binaryBard楼主2021/3/26 21:07
#include<bits/stdc++.h>
using namespace std;

int n,a[10005]={0},num=0;
void px(){
    int p,t;
    for(int i=1;i<n;i++){
        if(a[i]<=a[0]&&a[i+1]>=a[0]){
            p=i;
            t=a[i];
            break;
        }
    }
    for(int i=n;i>=p+1;i--){
        a[i]=a[i-1];
    }
    a[p]=t;
    return;
}
int main(){
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>a[i];
    }
    sort(a,a+n);
    for(int i=0;i<n-1;i++){
        num+=(a[0]+a[1]);
        a[0]=num;
        for(int i=1;i<n;i++){
            a[i]=a[i+1];
        }
        cout<<a[0]<<" "<<a[1]<<" "<<endl;
        px();
        for(int i=0;i<n;i++){
            cout<<a[i]<<" ";
        }
        cout<<endl<<num<<endl;
    }
    cout<<endl;
    cout<<num<<endl;
    return 0;
}

输入

3
1 2 9

最终num的值为15


#include<bits/stdc++.h>
using namespace std;

int n,a[10005]={0},num=0;
void px(){
    int p,t;
    for(int i=1;i<n;i++){
        if(a[i]<=a[0]&&a[i+1]>=a[0]){
            p=i;
            t=a[i];
            break;
        }
    }
    for(int i=n;i>=p+1;i--){
        a[i]=a[i-1];
    }
    a[p]=t;
    return;
}
int main(){
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>a[i];
    }
    sort(a,a+n);
    for(int i=0;i<n-1;i++){
        num+=(a[0]+a[1]);
        a[0]=num;
        for(int i=1;i<n;i++){
            a[i]=a[i+1];
        }
        //cout<<a[0]<<" "<<a[1]<<" "<<endl;
        px();
        for(int i=0;i<n;i++){
            cout<<a[i]<<" ";
        }
        cout<<endl<<num<<endl;
    }
    cout<<endl;
    cout<<num<<endl;
    return 0;
}

输入

3
1 2 9

最终num的值为7

2021/3/26 21:07
加载中...