Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- using namespace std;
- int main()
- {
- string a;
- string b;
- cin >> a;
- cin >> b;
- int ap[21];
- int apc = 1;
- int bp[21];
- int bpc = 1;
- int cp[42];
- int mode = 0;
- string number("");
- string power("");
- for (int i = 0; i < 21; i++)
- {
- ap[i] = 0;
- bp[i] = 0;
- }
- for (int i = 0; i < a.size(); i++)
- {
- if (mode == 0) {
- if (a[i] != '+' && a[i] != 'x')
- number += a[i];
- }
- if (a[i] == '+' || a[i] == '-')
- {
- mode = 0;
- if (number == "")
- number = "1";
- if (number == "-")
- number = "-1";
- if (power == "")
- power = "0";
- ap[stoi(power.c_str())] = stoi(number.c_str());
- number = "";
- if (b[i] == '-')
- number = "-";
- power = "";
- apc++;
- continue;
- }
- if (a[i] == 'x')
- mode = 1;
- if (a[i] == '^')
- {
- mode = 2;
- power = "";
- continue;
- }
- if (mode == 1)
- {
- power = "1";
- }
- if (mode == 2)
- power += a[i];
- }
- if (number == "")
- number = "1";
- if (number == "-")
- number = "-1";
- if (power == "")
- power = "0";
- ap[stoi(power)] = stoi(number);
- number = "";
- power = "";
- for (int i = 0; i < b.size(); i++)
- {
- if (mode == 0) {
- if (b[i] != '+' && b[i] != 'x')
- number += b[i];
- }
- if (b[i] == '+' || b[i] == '-')
- {
- mode = 0;
- if (number == "")
- number = "1";
- if (number == "-")
- number = "-1";
- if (power == "")
- power = "0";
- bp[stoi(power.c_str())] = stoi(number.c_str());
- number = "";
- if (b[i] == '-')
- number = "-";
- power = "";
- apc++;
- continue;
- }
- if (b[i] == 'x')
- mode = 1;
- if (b[i] == '^')
- {
- mode = 2;
- power = "";
- continue;
- }
- if (mode == 1)
- {
- power = "1";
- }
- if (mode == 2)
- power += b[i];
- }
- if (number == "")
- number = "1";
- if (number == "-")
- number = "-1";
- if (power == "")
- power = "0";
- bp[stoi(power)] = stoi(number);
- for (int i = 0; i < 42; i++)
- {
- cp[i] = 0;
- }
- for (int i = 0; i < 21; i++)
- {
- for (int j = 0; j < 21; j++)
- {
- cp[i + j] += ap[i] * bp[j];
- }
- }
- string res;
- for (int i = 41; i >= 0; i--)
- {
- if (cp[i] != 0)
- {
- if (cp[i] > 0 && res != "")
- res += "+";
- if(cp[i] != 1)
- res += to_string(cp[i]);
- if (i != 0)
- {
- res += 'x';
- if (i != 1)
- {
- res += '^';
- res += to_string(i);
- }
- }
- }
- }
- cout << res;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement