社区讨论

60分求助

P1093[NOIP 2007 普及组] 奖学金参与者 1已保存回复 1

讨论操作

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

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

using namespace std;

int main(){
    int n;
    cin >> n;
    int sx[n],yw[n],yy[n];
    int num[n];
    for(int i = 0;i < n;i++){
        cin >> sx[i] >> yw[i] >> yy[i];
        num[i] = i + 1;
    }
    for(int i = 0;i < n;i++){
        for(int j = 0;j < n - 1;j++){
            if(sx[j] + yw[j] + yy[j] < sx[j + 1] + yw[j + 1] + yy[j + 1]){
                swap(sx[j],sx[j + 1]);
                swap(yw[j],yw[j + 1]);
                swap(yy[j],yy[j + 1]);
                swap(num[j],num[j + 1]);
            }else if(sx[j] + yw[j] + yy[j] == sx[j + 1] + yw[j + 1] + yy[j + 1]){
                if(yw[j] < yw[j + 1]){
                    swap(sx[j],sx[j + 1]);
                    swap(yw[j],yw[j + 1]);
                    swap(yy[j],yy[j + 1]);
                    swap(num[j],num[j + 1]);
                }else if(yw[j] == yw[j + 1]){
                    if(num[j] > num[j + 1]){
                        swap(sx[j],sx[j + 1]);
                        swap(yw[j],yw[j + 1]);
                        swap(yy[j],yy[j + 1]);
                        swap(num[j],num[j + 1]);
                    }
                }
            }
        }
    }
    for(int i = 0;i < min(n,5);i++){
        cout << num[i] << ' ' << sx[i] + yw[i] + yy[i] << endl;
    }
    return 0;
}

回复

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

正在加载回复...