比赛 |
暑假综合模拟2 |
评测结果 |
AAAAAAAAAA |
题目名称 |
等价表达式 |
最终得分 |
100 |
用户昵称 |
HYOI_ingn |
运行时间 |
0.057 s |
代码语言 |
C++ |
内存使用 |
0.25 MiB |
提交时间 |
2018-08-05 19:09:57 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
const int test1=0;
const int test2=1007;
int f(char c) {
if(c=='+'||c=='-')return 1;
if(c=='*')return 2;
if(c=='^')return 3;
if(c=='(')return 0;
}
void js(stack<int> &s1,stack<char> &s2) {
int x,y,ans=1,i;
char ch;
x=s1.top();
s1.pop();
y=s1.top();
s1.pop();
ch=s2.top();
s2.pop();
if(ch=='*')s1.push(y*x);
if(ch=='^') {
for(int i=0; i<x; i++) {
ans*=y;
}s1.push(ans);
}
if(ch=='+')s1.push(y+x);
if(ch=='-')s1.push(y-x);
}
int ans1[30],ans2;char s[60];
int main() {
freopen("equal.in","r",stdin);
freopen("equal.out","w",stdout);
int n;
gets(s);scanf("%d\n",&n);
for(int j=1; j<=n+1; j++) {
stack<int> si;
stack<char> sc;
int len=strlen(s),flag=0,temp=0;
for(int i=0; i<len; i++) {
if(s[i]==' ')continue;
if(s[i]=='\n')continue;
if(s[i]=='a')si.push(test1);
else if(s[i]>='0'&&s[i]<='9') {
temp=temp*10+s[i]-'0';
flag=1;
} else {
if(flag)si.push(temp),temp=0,flag=0;
if(s[i]=='(') {
sc.push(s[i]);
continue;
}
if(s[i]==')') {
while(sc.top()!='(')js(si,sc);
sc.pop();
continue;
}
if(sc.empty())sc.push(s[i]);
else {
while(!sc.empty()&&f(sc.top())>=f(s[i]))js(si,sc);
sc.push(s[i]);
}
}
}
if(flag)si.push(temp),temp=0,flag=0;
while(!sc.empty())js(si,sc);
if(j==1)ans1[0]=si.top();
else ans1[j]=si.top();
for(int i=0; i<len; i++) {
if(s[i]==' ')continue;
if(s[i]=='\n')continue;
if(s[i]=='a')si.push(test2);
else if(s[i]>='0'&&s[i]<='9') {
temp=temp*10+s[i]-'0';
flag=1;
} else {
if(flag)si.push(temp),temp=0,flag=0;
if(s[i]=='(') {
sc.push(s[i]);
continue;
}
if(s[i]==')') {
while(sc.top()!='(')js(si,sc);
sc.pop();
continue;
}
if(sc.empty())sc.push(s[i]);
else {
while(!sc.empty()&&f(sc.top())>=f(s[i]))js(si,sc);
sc.push(s[i]);
}
}
}
if(flag)si.push(temp),temp=0,flag=0;
while(!sc.empty())js(si,sc);
if(j==1)ans2=si.top();
else if(si.top()==ans2&&ans1[j]==ans1[0])
{
if(j+'A'-2=='T')
{
puts("VXY");
return 0;
}
cout<<(char)(j+'A'-2);
}
gets(s);
}
}