题解 | #合并表记录#

合并表记录

https://www.nowcoder.com/practice/de044e89123f4a7482bd2b214a685201

#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;
    int index, value;
    int indexx[n];//存索引
    int valuee[n];//存value
    //输入
    for(int i = 0; i < n; i ++){
        cin >> index >> value;
        valuee[i] = value;
        indexx[i] = index;
    }
    //合并
    for(int i = 0; i < n; i ++){
        for(int j = i + 1; j < n; j ++){
            if(indexx[i] == indexx[j]){
                valuee[i] += valuee[j];
                indexx[j] = indexx[n-1];
                valuee[j] = valuee[n-1];
                n --;
                j --;
            }
        }
    }
    //index升序排列
    for(int i = n - 1; i > 0; i --){
        for(int j = 0; j < i; j ++){
            if(indexx[j] > indexx[j+1]){
                int temp = indexx[j];
                indexx[j] = indexx[j+1];
                indexx[j+1] = temp;
                temp = valuee[j];
                valuee[j] = valuee[j+1];
                valuee[j+1] = temp;
            }
        }
    }
    for(int i = 0; i < n; i ++){
        cout << indexx[i] << " " << valuee[i] << endl;
    }
    return 0;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务