Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2019
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.43 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.     string a;
  9.     string b;
  10.  
  11.     cin >> a;
  12.     cin >> b;
  13.  
  14.     int ap[21];
  15.     int apc = 1;
  16.     int bp[21];
  17.     int bpc = 1;
  18.     int cp[42];
  19.  
  20.     int mode = 0;
  21.  
  22.     string number("");
  23.     string power("");
  24.  
  25.  
  26.     for (int i = 0; i < 21; i++)
  27.     {
  28.         ap[i] = 0;
  29.         bp[i] = 0;
  30.     }
  31.  
  32.     for (int i = 0; i < a.size(); i++)
  33.     {
  34.         if (mode == 0) {
  35.             if (a[i] != '+' && a[i] != 'x')
  36.                 number += a[i];
  37.         }
  38.  
  39.         if (a[i] == '+' || a[i] == '-')
  40.         {
  41.             mode = 0;
  42.             if (number == "")
  43.                 number = "1";
  44.             if (number == "-")
  45.                 number = "-1";
  46.             if (power == "")
  47.                 power = "0";
  48.             ap[stoi(power.c_str())] = stoi(number.c_str());
  49.             number = "";
  50.             if (b[i] == '-')
  51.                 number = "-";
  52.             power = "";
  53.             apc++;
  54.             continue;
  55.         }
  56.         if (a[i] == 'x')
  57.             mode = 1;
  58.         if (a[i] == '^')
  59.         {
  60.             mode = 2;
  61.             power = "";
  62.             continue;
  63.         }
  64.        
  65.         if (mode == 1)
  66.         {
  67.             power = "1";
  68.         }
  69.         if (mode == 2)
  70.             power += a[i];
  71.     }
  72.     if (number == "")
  73.         number = "1";
  74.     if (number == "-")
  75.         number = "-1";
  76.     if (power == "")
  77.         power = "0";
  78.     ap[stoi(power)] = stoi(number);
  79.  
  80.     number = "";
  81.     power = "";
  82.  
  83.     for (int i = 0; i < b.size(); i++)
  84.     {
  85.         if (mode == 0) {
  86.             if (b[i] != '+' && b[i] != 'x')
  87.                 number += b[i];
  88.         }
  89.  
  90.         if (b[i] == '+' || b[i] == '-')
  91.         {
  92.             mode = 0;
  93.             if (number == "")
  94.                 number = "1";
  95.             if (number == "-")
  96.                 number = "-1";
  97.             if (power == "")
  98.                 power = "0";
  99.             bp[stoi(power.c_str())] = stoi(number.c_str());
  100.             number = "";
  101.             if (b[i] == '-')
  102.                 number = "-";
  103.             power = "";
  104.             apc++;
  105.             continue;
  106.         }
  107.         if (b[i] == 'x')
  108.             mode = 1;
  109.         if (b[i] == '^')
  110.         {
  111.             mode = 2;
  112.             power = "";
  113.             continue;
  114.         }      
  115.  
  116.  
  117.         if (mode == 1)
  118.         {
  119.             power = "1";
  120.         }
  121.         if (mode == 2)
  122.             power += b[i];
  123.     }
  124.     if (number == "")
  125.         number = "1";
  126.     if (number == "-")
  127.         number = "-1";
  128.     if (power == "")
  129.         power = "0";
  130.     bp[stoi(power)] = stoi(number);
  131.  
  132.     for (int i = 0; i < 42; i++)
  133.     {
  134.         cp[i] = 0;
  135.     }
  136.  
  137.     for (int i = 0; i < 21; i++)
  138.     {
  139.         for (int j = 0; j < 21; j++)
  140.         {
  141.             cp[i + j] += ap[i] * bp[j];
  142.         }
  143.     }
  144.  
  145.     string res;
  146.     for (int i = 41; i >= 0; i--)
  147.     {
  148.         if (cp[i] != 0)
  149.         {
  150.             if (cp[i] > 0 && res != "")
  151.                 res += "+";
  152.             if(cp[i] != 1)
  153.                 res += to_string(cp[i]);
  154.  
  155.             if (i != 0)
  156.             {
  157.                 res += 'x';
  158.                 if (i != 1)
  159.                 {
  160.                     res += '^';
  161.                     res += to_string(i);
  162.                 }
  163.             }
  164.         }
  165.     }
  166.  
  167.     cout << res;
  168.  
  169.     return 0;
  170. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement