2014年初中竞赛试题(南海) 猜数

题目

这里写图片描述


解题思路

模拟


代码

#include<cstdio>
#include<iostream>
#include<string>
using namespace std; 
int n,mi=-100000000,ma=100000000,g,b;   
int main()
{
    scanf("%d",&n); 
    for (int i=1;i<=n;i++)
     {
       string s,ss; 
       cin>>s;
       if (s==">") g=1; 
       if (s=="<") g=2; 
       if (s==">=") g=3; 
       if (s=="<=") g=4; 
       scanf("%d",&b); cin>>ss; 
       if (ss=="N") //反过来,为了更好处理
       {
        if (g==1) g=4; 
        else if (g==2) g=3; 
        else if (g==3) g=2; 
        else if (g==4) g=1; 
       }
        if (g==1) g=3,b++;//a>b等于a>=b+1; 
        if (g==2) g=4,b--;//等同于上
        if (g==3) mi=max(mi,b); 
        if (g==4) ma=min(ma,b);
     }//mi和ma分别为左右边界
    if (mi>ma) printf("Impossible"); else printf("%d",mi); //如果左边界比右边界大,则无解,否则输出mi(最小解)
}

猜你喜欢

转载自blog.csdn.net/qq_39897867/article/details/79842679
今日推荐