题目链接:不等式
解析:直接枚举C的位置,然后判断所有C中所满足的最大个数。
注意C没有讲是整数,所以枚举要+0.5
实话说,我也不懂为什么枚举实数要这样枚举。。。
AC代码:
#include <cstdio>
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
struct Node{
string p;
double v;
};
Node a[51];
int main(){
// #ifdef sxk
// freopen("in.txt", "r", stdin);
// #endif // sxk
int n;
string X;
while(scanf("%d", &n) == 1){
for(int i=0; i<n; i++){
cin>>X>>a[i].p>>a[i].v;
a[i].v *= 2; //×2避免0.5的出现
}
int ans = -123456789;
for(int i=-1; i<2005; i++){
int res = 0;
for(int j=0; j<n; j++){
if(a[j].p == "="){
if(a[j].v == i) res ++;
}
else if(a[j].p == ">"){
if(a[j].v < i) res ++;
}
else if(a[j].p == ">="){
if(a[j].v <= i) res ++;
}
else if(a[j].p == "<"){
if(a[j].v > i) res ++;
}
else if(a[j].p == "<="){
if(a[j].v >= i) res ++;
}
}
if(ans < res) ans = res;
}
printf("%d\n", ans);
}
return 0;
}