您的位置:首页 > 其它

华为OJ——合并表记录

2016-05-15 09:09 267 查看
合并表记录

题目描述

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

输入描述:
先输入键值对的个数

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

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

输入例子:
4
0 1
0 2
1 2
3 4

输出例子:
0 3
1 2
3 4
解答代码:

#include<iostream>

#include<cstring>

#include<set>

using namespace std;

int main()

{

int n;

int i,index,num;

int sum[512]={0};

set<int> s;

set<int>::iterator p;

while(cin>>n)

{

s.clear();

memset(sum,0,sizeof(sum));

for(i=0;i<n;i++)

{

cin>>index>>num;

s.insert(index);

sum[index]=sum[index]+num;

}

for(p=s.begin();p!=s.end();p++)

{

cout<<*p<<' '<<sum[*p]<<endl;

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: