pat B1010
#include <iostream>
using namespace std;
int main() {
int a,b,flag=0;//flag
while(cin>>a>>b)
{
if(b!=0)
{
if(flag==1)
{
cout<<" ";
}
cout<<a*b<<" "<<b-1;
flag=1;
}
}
if(flag==0)
{
cout<<"0 0";
}
return 0;
}
pat A1002
//两个多项式相加
#include<iostream>
using namespace std;
int main()
{
int a,m,n;
float b;
float sum[1001]={0};//要比他给的1000多1
scanf("%d",&m);
for(int i=0;i<m;i++)
{
scanf("%d%f",&a,&b);//m代表几个多项式,a代表x的次数,b代表x的系数
sum[a]+=b;
}
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d%f",&a,&b);//n代表几个多项式,a代表x的次数,b代表x的系数
sum[a]+=b;
}
int cnt=0;
for(int i=0;i<1001;i++)
{
if(sum[i]!=0) cnt++;
}
printf("%d",cnt);
for(int i=1000;i>=0;i--)
{
if(sum[i]!=0.0)
printf(" %d %.1f",i,sum[i]);
}
return 0;
}
pat A1009
#include<iostream>
using namespace std;
int main()
{
int a,m,n,cnt=0;
float b,arr[1001]={0.0},ans[2001]={0.0};
scanf("%d",&m);
for(int i=0;i<m;i++)
{
scanf("%d%f",&a,&b);
arr[a]=b;
}
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d%f",&a,&b);
for(int j=0;j<1001;j++)
{
ans[j+a]+=arr[j]*b;//这步很难想
}
}
for(int i=2000;i>=0;i--)
{
if(ans[i]!=0.0) cnt++;
}
printf("%d",cnt);
for(int i=2000;i>=0;i--)
{
if(ans[i]!=0.0)
printf(" %d %.1f",i,ans[i]);
}
return 0;
}