http://pat.zju.edu.cn/contests/pat-a-practise/1002
題目本身簡單。。不過要注意:輸出的時候 如果合併後係數爲0 , 就不要輸出這項,還有就是係數保留一位小數。
#include<iostream>
#include<iomanip>using namespace std;
int main()
{
float a[1001] = {0};
int b[1001] = {0};
bool c[1001] = {0};
int n , tmp , count_, max_;
float ftmp;
cin >>n;
count_ = max_ = 0 ;
for(int i = 0 ; i < n ; i ++)
{
cin>> tmp >> ftmp;
b[i] = tmp;
a[b[i]] += ftmp;
c[b[i]] = 1;
if(b[i] > max_)max_=b[i];
count_++;
}
cin >> n;
for(int i = 0 ; i < n ; i ++)
{
cin>> tmp >> ftmp;
b[i] = tmp;
a[b[i]] += ftmp;
if(b[i] > max_)max_=b[i];
if(!c[b[i]])
{
count_++;
c[b[i]] = 1;
}
if(a[b[i]] == 0 )
{
count_ --;
c[b[i]] = 0 ;
}
}
cout << count_;
for(int i = max_ ; i >= 0 ; i--)
{
if(c[i])
cout << ' '<< i << ' '<<fixed << setprecision(1) << a[i];
}
return 0;
}