PAT甲级1009

#include<iostream>
#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
bool cmp(pair<int,double>a,pair<int,double>b) {
	return a>b;
}
int main() {
	pair<int,double> p;
	int k1,k2,i,j;
	vector< pair<int,double> >L1;
	vector< pair<int,double> >L2;
	vector< pair<int,double> >L3;
	cin>>k1;
	for(i=0; i<k1; i++) {
		cin>>p.first>>p.second;
		L1.push_back(p);
	}
	cin>>k2;
	for(i=0; i<k2; i++) {
		cin>>p.first>>p.second;
		L2.push_back(p);
	}
	for(i=0; i<k1; i++)
		for(j=0; j<k2; j++) {
			p.first=L1[i].first+L2[j].first;
			p.second=L1[i].second*L2[j].second;
			L3.push_back(p);
		}
	sort(L3.begin(),L3.end(),cmp);
	int ernum1=0;
	for(i=0; i<k1*k2-1-ernum1; i++) {
		if(L3[i].first==L3[i+1].first) {
			L3[i].second+=L3[i+1].second;
			L3.erase(L3.begin()+i+1);
			ernum1++;
			i--;
		}
	}
	int ernum2=0;
	for(i=0; i<k1*k2-ernum1-ernum2; i++) {
		if(L3[i].second==0) {
			L3.erase(L3.begin()+i);
			i=i-1;
			ernum2++;
		}
	}
	cout<<L3.size();
	for(i=0; i<L3.size(); i++) {
		printf(" %d %.1f",L3[i].first,L3[i].second);
	}


	return 0;
}

发布了26 篇原创文章 · 获赞 1 · 访问量 800

猜你喜欢

转载自blog.csdn.net/qq_43654994/article/details/105318362
今日推荐