Advertisement
Guest User

Untitled

a guest
Aug 24th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.19 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. const int N = 1e5+10;
  5.  
  6. int arr[4];
  7. char op[3];
  8.  
  9. long long solve(int sym[3],vector<int> v,int num)
  10. {
  11.     vector<long long> vec;
  12.     vec.push_back(arr[num-1]);
  13.     for(int i = 0; i < v.size();i++)
  14.     {
  15.         vec.push_back(arr[v[i]-1]);
  16.         //cout << vec[i+1] << endl;
  17.     }
  18.     vector<char> symbols;
  19.     for(int i = 0; i < 3; i++)
  20.         symbols.push_back(op[sym[i]-1]);
  21.     for(int i = 0; i < symbols.size(); i++)
  22.     {
  23.         if(symbols[i]=='*')
  24.         {
  25.             vec[i]*=vec[i+1];
  26.             vec.erase(vec.begin()+(i+1));
  27.             symbols.erase(symbols.begin()+i);
  28.             i--;
  29.         }
  30.     }
  31.     /*for(int i = 0; i < vec.size();i++)
  32.         cout << vec[i] << " ";
  33.     cout << endl;*/
  34.     for(int i = 0; i < symbols.size(); i++)
  35.     {
  36.         if(symbols[i]=='+')
  37.         {
  38.             vec[i]+=vec[i+1];
  39.             vec.erase(vec.begin()+(i+1));
  40.             symbols.erase(symbols.begin()+i);
  41.             i--;
  42.         }
  43.     }
  44.     /*for(int i = 0; i < vec.size();i++)
  45.         cout << vec[i] << " ";
  46.     cout << endl;*/
  47.     long long mx = -1e9;
  48.     for(int i = 0; i < vec.size();i++)
  49.         mx = max(mx,vec[i]);
  50.     //cout << endl;
  51.     //cout << mx << endl;
  52.     return mx;
  53. }
  54.  
  55. int main()
  56. {
  57.     ios::sync_with_stdio(0);
  58.     cin.tie(NULL);
  59.     cout.tie(NULL);
  60.  
  61.     #ifndef ONLINE_JUDGE
  62.         //freopen("input.txt", "r", stdin);
  63.         //freopen("out.txt", "w", stdout);
  64.     #endif // ONLINE_JUDGE
  65.  
  66.     long long ans = 1e18;
  67.  
  68.  
  69.     bool zero = false;
  70.     bool mult = false;
  71.     for(int i = 0; i < 4;i++)
  72.     {
  73.         cin >> arr[i];
  74.         if(!arr[i])
  75.             zero = true;
  76.     }
  77.     for(int i = 0; i < 3; i++)
  78.     {
  79.         cin >> op[i];
  80.         if(op[i]=='*')
  81.             mult = true;
  82.     }
  83.     if(mult && zero)
  84.     {
  85.         cout << 0;
  86.         return 0;
  87.     }
  88.     for(int i = 1;i<=4;i++)
  89.     {
  90.         vector<int> numseq;
  91.         for(int j = 1;j<=4;j++)
  92.         {
  93.             if(j!=i)
  94.                 numseq.push_back(j);
  95.         }
  96.         bool numSwipeRight = true;
  97.         for(int j = 0; j < 6;j++)
  98.         {
  99.             int symseq[] = {1,2,3};
  100.             bool symSwipeRight = true;
  101.             for(int k = 0; k<6;k++)
  102.             {
  103.                 ans = min(ans,solve(symseq,numseq,i));
  104.                 //cout << ans << endl;
  105.                 if(symSwipeRight)
  106.                 {
  107.                     swap(symseq[1],symseq[2]);
  108.                     symSwipeRight = false;
  109.                 }
  110.                 else
  111.                 {
  112.                     swap(symseq[1],symseq[0]);
  113.                     symSwipeRight=true;
  114.                 }
  115.             }
  116.             if(numSwipeRight)
  117.             {
  118.                 swap(numseq[1],numseq[2]);
  119.                 numSwipeRight=false;
  120.             }
  121.             else
  122.             {
  123.                 swap(numseq[1],numseq[0]);
  124.                 numSwipeRight=true;
  125.             }
  126.         }
  127.     }
  128.     /*int symtest[] = {1,2,3};
  129.     vector<int> numtest;
  130.     numtest.push_back(2);
  131.     numtest.push_back(3);
  132.     numtest.push_back(4);
  133.     ans = min(ans,solve(symtest,numtest,1));*/
  134.     cout << ans << endl;
  135.  
  136.     return 0;
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement