提交记录 21446
提交时间 |
评测时间 |
2024-03-24 21:59:04 |
2024-03-24 21:59:05 |
//https://onlinejudge.org/external/118/11890.pdf
//11890
#include<cstdio>
#include<iostream>
#include<string>
#include<algorithm>
#include<stack>
using namespace std;
int arr[100002], arr2[100002];
bool comp(int a, int b){
return a > b;
}
int main(){
int cases, size, i, j, l, index, h, pre, ans, sinal, index2;
string cad;
scanf("%i", &cases);
while(cases--){
cin.ignore();
getline(cin, cad);
scanf("%i", &size);
for(i = 0; i<size; i++){
scanf("%i", &arr[i]);
arr2[i] = 1;
}
sort(arr, arr+size, comp);
ans = 0;
pre = 0;
l = 0;
h = size-1;
index = size;
stack<int>p;
for(i = cad.size()-1; i>-1; i--){
if(cad[i] == 'x'){
index--;
}
else if((cad[i] == '+' || cad[i] == '-')){
sinal = -1;
if(cad[i] == '+'){
sinal = 1;
}
if(cad[i+1] == '(' && cad[i+3] != ')'){
p.push('(');
j = i+2;
index2 = index;
while(!p.empty()){
if(cad[j] == '('){
p.push('(');
}
else if(cad[j] == ')'){
p.pop();
}
else if(cad[j] == 'x'){
//cout<<j<<" "<<index2<<endl;
arr2[index2++]*=sinal;
}
j+=1;
}
}
else{
//cout<<i<<" "<<index<<endl;
arr2[index] = sinal;
}
}
}
for(i = 0; i<size; i++){
//cout<<arr[i]<<" ";
if(arr2[i] < 0){
//cout<<"- "<<arr[h]<<" ";
ans+=(arr[h--]*-1);
}
else{
//cout<<"+ "<<arr[l]<<" ";
ans+=(arr[l++]);
}
}
printf("%i\n", ans);
}
return 0;
}
Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
Testcase #1 | 36.85 us | 36 KB | Accepted | Score: 100 | 显示更多 |
Judge Duck Online | 评测鸭在线
Server Time: 2025-07-19 04:38:41 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠