题意:
中文
思路:
将不等式转化为区间,对符合要求的点染色,求出点的最大值
代码:
#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 < 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