社区讨论

95pts且1TLE求调

B4413[GESP202509 三级] 数组清零参与者 1已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mhj2uuc8
此快照首次捕获于
2025/11/03 19:49
4 个月前
此快照最后确认于
2025/11/03 19:49
4 个月前
查看原帖
CPP
#include <bits/stdc++.h>

using namespace std;

int cut;
int main(){
    int n;
    cin >> n;
    int a[n];
    for(int i = 0;i < n;i++){
        cin >> a[i];
    }
    bool flag = true;
    for(int i = 0;i < n;i++){
        if(a[i] != 0){
            flag = false;
            break;
        }
    }
    if(flag){
        cout << "0" << endl;
        return 0;
    }
    while(!flag){
        int maxx = a[0];
        int maxx_xb = 0;
        int minn = a[0];
        int minn_xb = 0;
        for(int i = 1;i < n;i++){       // 找最大值
            if(a[i] >= maxx){
                maxx = a[i];
                maxx_xb = i;
            }
        }
        for(int i = 1;i < n;i++){       // 找最小值
            if(a[i] <= minn && a[i] != 0){
                minn = a[i];
                minn_xb = i;
            }
        }
        a[maxx_xb] -= a[minn_xb];
    
        bool temp = true;
        for(int j = 0;j < n;j++){
            if(a[j] != 0){
                temp = false;
                break;
            }
        }
        if(temp){
            flag = true;
        }
        cut += 1;
    }
    cout << cut << endl;
    return 0;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...