#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<vector>
using namespace std;
struct Per
{
int a;
int n;
};
vector<Per> Read()
{
int num;
cin >> num;
vector<Per> v(num);
for (int i = 0; i < num; i++)
{
cin >> v[i].a >> v[i].n;
}
return v;
}
vector<Per> ADD(vector<Per>& v1, vector<Per>& v2)
{
vector<Per> s;
int i = 0, j = 0;
while (i < v1.size() && j < v2.size())
{
if (v1[i].n > v2[j].n)
{
s.push_back(v1[i]);
i++;
}
else if (v1[i].n < v2[j].n)
{
s.push_back(v2[j]);
j++;
}
else if (v1[i].n == v2[j].n)
{
int a = v1[i].a + v2[j].a;
int n = v1[i].n;
if (a != 0)
{
s.push_back({ a, n });
}
i++;
j++;
}
}
while (i < v1.size())
{
s.push_back(v1[i]);
i++;
}
while (j < v2.size())
{
s.push_back(v2[j]);
j++;
}
return s;
}
void Print(vector<Per>& v)
{
int flag = 1;
for (int i = 0; i < v.size(); i++)
{
if(v[i].a !=0)
{
cout << v[i].a << " " << v[i].n;
flag = 0;
}
if (i != v.size() - 1)
{
cout << " ";
}
}
if (flag)
printf("0 0");
}
int main()
{
vector<Per> Vx = Read();
vector<Per> Vy = Read();
vector<Per> sum = ADD(Vx, Vy);
Print(sum);
return 0;
}
一元多项式的加法
最新推荐文章于 2024-05-19 23:47:09 发布