这为什么会WA
#include <bits/stdc++.h>
using namespace std;
#define F(i,a,b) for(int i=a;i<=b;i++)
#define uF(i,a,b) for(int i=a;i>=b;i--)
#define nF(i,a,b) for(int i=a;i<b;i++)
#define unF(i,a,b) for(int i=a;i>b;i--)
inline int read() {
int x,f;char ch;
for(f=0;!isdigit(ch=getchar());f=ch=='-');
for(x=ch-48;isdigit(ch=getchar());x=x*10+ch-48);
return f?-x:x;
}
inline void print(long long x){
if(x==0) {
putchar('0');
// putchar(' ');
return ;
}
if(x<0) putchar('-'),x=-x;
int linshi[22],k=0;
while(x) linshi[++k]=x%10,x/=10;
while(k) putchar(linshi[k--]+48);
// putchar(' ');
return ;
}
struct qs{
long long yxj=0;
char name;
bool operator >(const qs &lipu) const {
return yxj>lipu.yxj;
}
/*bool operator <(const qs &lipu) const {
return yxj<lipu.yxj;
}
bool operator <=(const qs &lipu) const {
return yxj<=lipu.yxj;
}*/
};
struct thetring {
long long size;
bool if_sum=false;
};
int main() {
int khs=0;
string k;
cin>>k;
stack<qs>z1;
int uslen=0;
thetring used[110];
// stack<int>sum;
nF(i,0,k.length()) {
if(isdigit(k[i])) {
used[++uslen].size=k[i]-'0';
used[uslen].if_sum=true;
putchar(k[i]);putchar(' ');
}else {
if(k[i]=='(') khs++;
else if(k[i]==')') khs--;
else {
qs ls;
if(k[i]=='+' || k[i]=='-') ls.yxj=1;
else if(k[i]=='*' || k[i]=='/') ls.yxj=2;
else ls.yxj=3;
ls.yxj+=khs*5;
ls.name=k[i];
while(!z1.empty()) {
if(ls>z1.top()) break;
used[++uslen].size=(z1.top()).name;
used[uslen].if_sum=false;
putchar((z1.top()).name);
putchar(' ');
z1.pop();
}
z1.push(ls);
}
}
if(i==k.length()-1) {
used[++uslen].size=(z1.top()).name;
used[uslen].if_sum=false;
putchar((z1.top()).name);
}
}
/*putchar('\n');
F(i,1,uslen) {
putchar(used[i].size);
printf(" >>l:%d,r:%d\n",used[i].left_name,used[i].right_name);
}*/
int kk[110],kks=0;
F(i,1,uslen) {
if(used[i].if_sum) {
kk[++kks]=used[i].size;
}else {
long long opop=kk[kks--];
if(used[i].size=='+') kk[kks]+=opop;
if(used[i].size=='-') kk[kks]-=opop;
if(used[i].size=='*') kk[kks]*=opop;
if(used[i].size=='/') kk[kks]/=opop;
if(used[i].size=='^') kk[kks]=pow(kk[kks],opop);
putchar('\n');
F(j,1,kks) print(kk[j]),putchar(' ');
F(j,i+1,uslen) {
if(used[j].if_sum) print(used[j].size);
else putchar(used[j].size);
putchar(' ');
}
}
}
return 0;
}