NEFU 1114 expression

来源:互联网 发布:ubuntu 16 搜狗输入法 编辑:程序博客网 时间:2024/06/01 18:04

题意:

中文

思路:

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

代码:

#include <iostream>#include <string>#include <algorithm>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)<<endl;    }    return 0;}

Description

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

Input

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

Output

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

Sample Input

3X > 1X <= 0X > 2

Sample Output

2

0 0
原创粉丝点击