合并表记录
参与人数: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