标签:
给定n个关于X的不等式,问最多有多少个成立。
每个不等式为如下的形式之一:
X < C
X <= C
X = C
X > C
X >= C
第一行一个整数n。
以下n行,每行一个不等式。
数据范围:
1<=N<=50,0<=C<=1000
一行一个整数,表示最多可以同时成立的不等式个数。
4 X = 1 X = 2 X = 3 X > 0
样例输出
2
这题没说C是整数,但是提交代码把C当成整数可以AC,解法:枚举 X= -0.5,0,0.5,......1000.5 检查满足条件的不等式有多少个,ans就是这个最大值
#include <cstdio> #include <cstring> #include <string> #include <map> using namespace std; char s[10]; char st[10]; int n; int a[2020]; int main(){ scanf("%d",&n); int x; for(int i=0;i<n;i++){ scanf("%s",s); scanf("%s",s); scanf("%s",st); sscanf(st,"%d",&x); if(strcmp(s,"=")==0){ a[2*(x+1)]++; } else if(strcmp(s,">")==0){ for(int j=2*(x+1)+1;j<2010;j++) a[j]++; }else if(strcmp(s,">=")==0){ for(int j=2*(x+1);j<2010;j++) a[j]++; }else if(strcmp(s,"<")==0){ for(int j=2*x+1;j>=0;j--) a[j]++; }else if(strcmp(s,"<=")==0){ for(int j=2*(x+1);j>=0;j--) a[j]++; } } int ans = 0; for(int i=0;i<2010;i++){ if(ans<a[i]) ans = a[i]; } printf("%d\n",ans); return 0; }
标签:
原文地址:http://www.cnblogs.com/zhjou/p/4771638.html