CodeForce 416 A Gress a number!


リンク:http://codeforces.com/problemset/problem/416/A
Gress a number
time limit per test:1 second
memory limit per test:256 megabytes
input:standard input
out put:standard output
A TV show caled「Gress a number!」is gathering popullarity.The whole Berland,the old and the young,ar watch ing the show.
The rules are simple.The host thinks of an integer y and the participnts gess it by asking questions to the host.The re are four types of acceptable questions:
  • Is it true that y strictly larger than number x?
  • Is it true that y strictly smaler than number x?
  • Is it true that y is larger than or equal to number x?
  • Is it true that y smaler than or equal to number x?
  • On each question the host answers truthfully、yes or no.
    Gven the sequence of questions and answers、find any integer value of y that meets the criteria of all answers.If there isn't such value、print「Impossible」.
    Input
    The first line of the input contains a single integer n(1̵≦n n≦̴n≦10000)—the number of questions(and answerss).Next n line e each contain one question and one answer.The the forwers.The e e e e e e e e of the。
  • ">(for the first type queries)、
  • 「<」(for the second type queries)、
  • ">="(for the third type queries)、
  • "<="(for the fourth type queries).
  • All values of x are integer and meet the inequation̵-?109̵≦?x≦?109.The answer is n English letter“Y”(for“Yes”)or“N”(for“no”)。
    Consequtive elemens in lineas separated by a single space.
    Output
    Print any of such integers y、that the answers to all the queries arcorect. The printed number y must meet the inequation?-?2・109?≤?yy???y?y??̵y̵?y??y̵̵?y??ywithout the.
    Sample test(s)
    Input
    4
    >= 1 Y
    < 3 N
    <= -3 N
    > 55 N
    
    Output
    17
    
    Input
    2
    > 100 Y
    < -100 Y
    
    Output
    Impossible
    直接シミュレーションにACコードを添付します。
    #include <iostream>
    #include <cstdio>
    #include <string>
    #include <cmath>
    #include <iomanip>
    #include <ctime>
    #include <climits>
    #include <cstdlib>
    #include <cstring>
    #include <algorithm>
    #include <queue>
    #include <vector>
    #include <set>
    #include <map>
    //#pragma comment(linker, "/STACK:102400000, 102400000")
    using namespace std;
    typedef unsigned int li;
    typedef long long ll;
    typedef unsigned long long ull;
    typedef long double ld;
    const double pi = acos(-1.0);
    const double e = exp(1.0);
    const double eps = 1e-8;
    int n, x;
    char sign[5], answer;
    
    int main()
    {
    	ios::sync_with_stdio(false);
    	while (~scanf("%d", &n))
    	{
    		int maxy = 2000000000;
    		int miny = -2000000000;
    		while (n--)
    		{
    			scanf("%s%d %c", sign, &x, &answer);
    			if (!strcmp(">", sign))
    			{
    				if (answer == 'Y')
    					miny = max(miny, x+1);
    				else
    					maxy = min(maxy, x);
    			}
    			else if (!strcmp(">=", sign))
    			{
    				if (answer == 'Y')
    					miny = max(miny, x);
    				else
    					maxy = min(maxy, x-1);
    			}
    			else if (!strcmp("<", sign))
    			{
    				if (answer == 'Y')
    					maxy = min(maxy, x-1);
    				else
    					miny = max(miny, x);
    			}
    			else
    			{
    				if (answer == 'Y')
    					maxy = min(maxy, x);
    				else
    					miny = max(miny, x+1);
    			}
    		}
    		if (miny > maxy)
    			printf("Impossible
    "); else printf("%d
    ", miny); } return 0; }