代码如下:
#include<bits/stdc++.h>
using namespace std;
const int maxn=6e4+10;
int n;
char x;
string str1,str2,m1="-1000010",m2="1000010";
bool eq1,eq2,pd1,pd2;
inline bool pd(string a,string b,bool c) {
if(c==1) {
if(a[0]!='-'&&b[0]=='-') return true;
else if(a[0]=='-'&&b[0]!='-') return false;
else if(a[0]=='-'&&b[0]=='-') {
if(a.length()<b.length()) return true;
return a<b;
}
if(a.length()>b.length()) return true;
return a>b;
} else if(c==0) {
if(a[0]!='-'&&b[0]=='-') return false;
else if(a[0]=='-'&&b[0]!='-') return true;
else if(a[0]=='-'&&b[0]=='-') {
if(a.length()>b.length()) return true;
return a>b;
}
if(a.length()<b.length()) return true;
return a<b;
}
}
signed main() {
std::ios::sync_with_stdio(false);
cin>>n>>x;
while(n--) {
cin>>str1;
int len=str1.length();
if(str1[1]=='>'&&str1[2]!='=') {
pd1=1;
str2=str1.substr(2,len-2);
if(pd(str2,m1,1)) {
m1=str2;
eq1=0;
}
} else if(str1[1]=='>'&&str1[2]=='=') {
pd1=1;
str2=str1.substr(3,len-3);
if(pd(str2,m1,1)) {
m1=str2;
eq1=1;
}
} else if(str1[1]=='<'&&str1[2]!='=') {
pd2=1;
str2=str1.substr(2,len-2);
if(pd(str2,m2,0)) {
m2=str2;
eq2=0;
}
} else if(str1[1]=='<'&&str1[2]=='=') {
pd2=1;
str2=str1.substr(3,len-3);
if(pd(str2,m2,0)) {
m2=str2;
eq2=1;
}
}
// cout<<str2<<' '<<m1<<' '<<m2<<' '<<eq1<<' '<<eq2<<"\n";
}
if(pd1&&pd2) {
if(m1==m2&&!eq1||!eq2) {
puts("No Answer!");
return 0;
} else if(pd(m1,m2,1)) {
puts("No Answer!");
return 0;
}
cout<<m1<<'<';
if(eq1) cout<<'=';
cout<<x<<'<';
if(eq2) cout<<'=';
cout<<m2<<"\n";
} else if(pd1) {
cout<<x<<'>';
if(eq1) cout<<'=';
cout<<m1<<"\n";
} else {
cout<<x<<'<';
if(eq2) cout<<'=';
cout<<m2<<"\n";
}
return 0;
}
样例全过,只拿5分……