给定n个关于X的不等式,问最多有多少个成立。
每个不等式为如下的形式之一:
X < C
X <= C
X = C
X > C
X >= C
第一行一个整数n。
以下n行,每行一个不等式。
数据范围:
1<=N<=50,0<=C<=1000
一行一个整数,表示最多可以同时成立的不等式个数。
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; char s[101][100]; int num[101]; int main() { int n; scanf("%d",&n); for(int i=0; i<n; i++) { scanf("%s%s%d",s[i],s[i],&num[i]); num[i]*=2; } int ans=0; for(int i=-1; i<=2001; i++) { int sum=0; for(int j=0; j<n; j++) { if(strcmp(s[j],"=")==0&&num[j]==i)sum++; else if(strcmp(s[j],">")==0&&num[j]<i)sum++; else if(strcmp(s[j],">=")==0&&num[j]<=i)sum++; else if(strcmp(s[j],"<")==0&&num[j]>i)sum++; else if(strcmp(s[j],"<=")==0&&num[j]>=i)sum++; } ans=max(sum,ans); } printf("%d\n",ans); return 0; }