fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. // przekazanie przez referencje
  5. int znajdz_operator(const vector<char>& operatory) {
  6. for (int i = 0; i < operatory.size(); i++) {
  7. if (operatory[i] == '*') {
  8. return i;
  9. }
  10. }
  11.  
  12. return 0;
  13. }
  14.  
  15. int wykonaj_operacje(int a, int b, char op) {
  16. if (op == '+') {
  17. return a+b;
  18. } else if (op == '-') {
  19. return a-b;
  20. }
  21.  
  22. return a*b;
  23. }
  24.  
  25. int main() {
  26. int n;
  27. cin >> n;
  28.  
  29. vector<int> liczby(n);
  30. vector<char> operatory(n-1);
  31.  
  32. for (int i = 0; i < n; i++) {
  33. cin >> liczby[i];
  34. }
  35.  
  36. for (int i = 0; i < n-1; i++) {
  37. cin >> operatory[i];
  38. }
  39.  
  40. while (liczby.size() > 1) {
  41. int index = znajdz_operator(operatory);
  42.  
  43. vector<int> nowe_liczby;
  44. for (int i = 0; i < liczby.size(); i++) {
  45. if (i == index) {
  46. int x = wykonaj_operacje(liczby[i], liczby[i+1], operatory[index]);
  47. nowe_liczby.push_back(x);
  48. continue;
  49. }
  50.  
  51. if (i != index+1) {
  52. nowe_liczby.push_back(liczby[i]);
  53. }
  54. }
  55. liczby = nowe_liczby;
  56.  
  57. operatory.erase(operatory.begin() + index);
  58. }
  59.  
  60. cout << liczby[0] << '\n';
  61.  
  62.  
  63. return 0;
  64. }
  65.  
Success #stdin #stdout 0s 5288KB
stdin
5
1 2 3 4 5
+ * - *
stdout
-13