CodeForce 416 A Gress a number!
3540 ワード
リンク: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
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:
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。
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
Output17
Input2
> 100 Y
< -100 Y
OutputImpossible
直接シミュレーションに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;
}