1009 Product of Polynomials (25 分)「PTA甲级」

#include 
#include 
using namespace std;

struct node{
	int pos=0;;
	double val;
}a[1100],b[1100];
//int tot=0;
double ans[5000];
int main() {
	int k1,k2;cin>>k1;
//	int tot;
	memset(ans, 0, sizeof(ans));
	for(int i=1;i<=k1;i++)
	{
		int c;cin>>c;
		a[i].pos=c;
		double va;cin>>va;
		a[i].val=va;
	}
	cin>>k2;
	for(int i=1;i<=k2;i++)
	{
		int c;cin>>c;
		b[i].pos=c;
		double va;cin>>va;
		b[i].val=va;
	}
	for(int i=1;i<=k1;i++)
	{
		for(int j=1;j<=k2;j++)
		{
			int po=a[i].pos+b[j].pos;
			ans[po]+=a[i].val*b[j].val;
		}
	}
	int k=0;
	for(int i=0;i<=2000;i++)
	{
		if(ans[i]!=0) k++;
	}
	printf("%d",k);
	for(int i=2000;i>=0;i--)
	{
		if(ans[i]!=0)
		{
			printf(" %d ",i);
			printf("%.1f",ans[i]);
		}
	}
	return 0;
}

你可能感兴趣的:(PTA,蓝桥杯,散列表,c++)