我不理解,样例什么问题都没有
查看原帖
我不理解,样例什么问题都没有
213535
Bluebird_楼主2021/12/4 20:28

把我做懵逼了

#include<bits/stdc++.h>
using namespace std;
int n;int ad=-1e7,bd=1e7;
int ab=-1e7,bb=1e7;
string w;string c;
int gn(int s)
{
	int ans=0;
	while(s<c.size())
	{
		ans=ans*10+c[s++]-'0';
	}
	//cout<<ans<<endl;
	return ans;
}
int x;int f[3],d[3];int g[3];
int main()
{
	cin>>n;
	cin>>w;
	getline(cin,c);
	for(int i=1;i<=n;i++)
	{
		getline(cin,c);
		if(c[1]=='>'){//>
			if(c[2]=='='){//>=
				if(c[3]=='-')x=gn(4)*(-1),ad=max(ad,x);
				else x=gn(3),ad=max(ad,x);
			}else{//>
				if(c[2]=='-')x=gn(3)*(-1),ab=max(ab,x);
				else x=gn(2),ab=max(ab,x);
			}
			g[1]=1;
		}else{//<
			if(c[2]=='='){
				if(c[3]=='-')x=gn(4)*(-1),bd=min(bd,x);
				else x=gn(3),bd=min(bd,x);
			}else{
				if(c[2]=='-')x=gn(3)*(-1),bb=min(bb,x);
				else x=gn(2),bb=min(bb,x);
			}
			g[2]=1;
		}
	}
	//cout<<ab<<" "<<ad<<" "<<bd<<" "<<bb<<endl;
	if(ab>=ad)f[1]=ab,d[1]=0;
	else f[1]=ad,d[1]=1;
	if(bb<=bd)f[2]=bb,d[2]=0;
	else f[2]=bd,d[2]=1;
	
	//cout<<f[1]<<" "<<d[1]<<" "<<f[2]<<" "<<d[2]<<endl;
	if(f[1]>f[2])
	{
		cout<<"No Answer!"<<endl;
		return 0;
	}
	if(f[1]==f[2]&&(!d[1]||!d[2]))
	{
		cout<<"No Answer!"<<endl;
		return 0;
	}else if(f[1]==f[2])
	{
		cout<<w<<"="<<f[1]<<endl;return 0;
	}
	
	/*if(ab==-1e7&&ad==-1e7)g[1]=0;
	else g[1]=1;
	if(bb==1e7&&bd==1e7)g[2]=0;
	else g[2]=1;*/
	
	if(g[1]&&g[2]){
		if(d[1]&&d[2])cout<<f[1]<<"<="<<w<<"<="<<f[2]<<endl;
		if(d[1]&&!d[2])cout<<f[1]<<"<="<<w<<"<"<<f[2]<<endl;
		if(!d[1]&&d[2])cout<<f[1]<<"<"<<w<<"<="<<f[2]<<endl;
		if(!d[1]&&!d[2])cout<<f[1]<<"<"<<w<<"<"<<f[2]<<endl;
	}else{
		if(g[1])
		{
			if(d[1])cout<<w<<">="<<f[1];
			else cout<<w<<">"<<f[1]<<endl;
		}
		if(g[2])
		{
			if(d[2])cout<<w<<"<="<<f[2];
			else cout<<w<<"<"<<f[2]<<endl;
		}
	}
	return 0;
}
2021/12/4 20:28
加载中...