嘉定做网站的,想学网站建设 如何开始,抖音代运营商家谈判话术,怎么让公司建设网站题目#xff1a;给出一个仅包含加减乘除四种运算符的算式(不含括号)#xff0c;如12*3/4#xff0c;在保持运算符顺序不变的情况下#xff0c;现在你可以进行若干次如下操作#xff1a;如果交换相邻的两个数#xff0c;表达式值不变#xff0c;那么你就可以交换这两个数…题目给出一个仅包含加减乘除四种运算符的算式(不含括号)如12*3/4在保持运算符顺序不变的情况下现在你可以进行若干次如下操作如果交换相邻的两个数表达式值不变那么你就可以交换这两个数。
#include vector
#include iostream
using namespace std;
int n;
void QuickSort(vectorint nums, int left, int right){if(left right) return;int pivot nums[left], l left, r right;while(l r){while(l r nums[r] pivot) --r;while(l r nums[l] pivot) l;swap(nums[l], nums[r]);}swap(nums[left], nums[r]);QuickSort(nums, left, r-1);QuickSort(nums, r1, right);
}
int main(){cin n;vectorint nums(n, 0);vectorchar ops(n, );for(int i0; in-1; i){cin nums[i];cin ops[i1];}cin nums[n-1];int l 0, r 0;while(r n){while(r n ops[r] ops[l]) r;if(ops[l] || ops[l] -){if(r n (ops[r] * || ops[r] /)) QuickSort(nums, l, r-2);//为什么要r-2因为数字总是在运算符的左侧运算符比数字少一个else QuickSort(nums, l, r-1);}else if(ops[l] *){if(l 0 (ops[l-1] || ops[l-1] -)) QuickSort(nums, l-1, r-1);else QuickSort(nums, l, r-1);}else if(ops[l] /){QuickSort(nums, l, r-1);}l r;}cout nums[0];for(int i1; in; i) cout ops[i] nums[i];return 0;
}