NEFU 1114 expression

题意:

中文

思路:

将不等式转化为区间,对符合要求的点染色,求出点的最大值

代码:

#include 
#include 
#include 
using namespace std;
int main(){
    int n;
    string str;
    while(cin>>n){
        int k;
        int a[3000]={0};
        while(n--){
            cin>>str>>str;
            cin>>k;
            k*=2;k++;
            if(str==">"){
                a[k+1]++;
            }else if(str=="<="){
                a[0]++;
                a[k+1]--;
            }else if(str=="="){
                a[k]++;
                a[k+1]--;
            }else if(str=="<"){
                a[0]++;
                a[k]--;
            }else if(str==">="){
                a[k]++;
            }
        }
        for(int i=1;i<2006;i++)
            a[i]+=a[i-1];
        cout<<*max_element(a,a+2004)<

Description

给定n个关于X的不等式,问最多有多少个成立。
每个不等式为如下的形式之一:
X < C
X <= C
X = C
X > C
X >= C

Input

第一行一个整数n。
以下n行,每行一个不等式。
数据范围:
1<=N<=50,0<=C<=1000

Output

一行一个整数,表示最多可以同时成立的不等式个数。

Sample Input

3
X > 1
X <= 0
X > 2

Sample Output

2

你可能感兴趣的:(>水题<,——————基础——————)