合并表记录

    xiaoxiao2024-12-23  16

    合并表记录 参与人数:2435时间限制:1秒空间限制:32768K 本题知识点:  栈  算法知识视频讲解

    题目描述

    数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。

    输入描述:

    先输入键值对的个数 然后输入成对的index和value值,以空格隔开

    输出描述:

    输出合并后的键值对(多行)

    输入例子:
    4 0 1 0 2 1 2 3 4
    输出例子:
    0 3 1 2 3 4 int main() { set<int> s; int n, a, b; int c[1000] = {0}; while (cin >> n) { while (n--&&cin >> a >> b) {//用数组表示索引 和对应值 s.insert(a);//用set存储索引值,set容器存储数据不重复且升序存储 c[a] += b; } for (set<int>::iterator iter = s.begin(); iter != s.end(); iter++) { cout << *iter << ' ' << c[*iter] << endl; } } return 0; } int main() { int n,a,b; while (cin>>n) { map<int, int> m;//用map容器存储索引和对应值 while (n--&&cin>>a>>b) { // 第一次插入默认为0,故直接插入即可 m[a] += b; } for (map<int, int>::iterator iter = m.begin(); iter != m.end(); iter++) { cout << iter->first << ' ' << iter->second << endl; } } return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-1294919.html
    最新回复(0)