hihoCoderチャレンジ14タイトル1:不等式
2250 ワード
時間制限:
10000ms
単一点時限:
1000ms
メモリの制限:
256MB
説明
Xに関するn個の不等式を与え,最大何個が成立するかを問う.
各不等式は次のいずれかです.
X < C
X <= C
X = C
X > C
X >= C
入力
最初の行の整数n.
以下のn行、各行に1つの不等式.
データ範囲:
1<=N<=50,0<=C<=1000
しゅつりょく
1行に1つの整数で、最大で同時に成立できる不等式の個数を表す.
サンプル入力
サンプル出力
問題の意味は、いくつかの不等式、要求、満たすことができる不等式の個数を与える.
xは整数ではないので、すべての1-1000を直接列挙し、0.5のすべての最大値を加えるとよい.すなわち、-1-0.5 0 0.5 1 1.5にマッピングする.等号で、直接1を加えて、他のセグメントの1を加えればいいです.複雑度o(n*n);
10000ms
単一点時限:
1000ms
メモリの制限:
256MB
説明
Xに関するn個の不等式を与え,最大何個が成立するかを問う.
各不等式は次のいずれかです.
X < C
X <= C
X = C
X > C
X >= C
入力
最初の行の整数n.
以下のn行、各行に1つの不等式.
データ範囲:
1<=N<=50,0<=C<=1000
しゅつりょく
1行に1つの整数で、最大で同時に成立できる不等式の個数を表す.
サンプル入力
4
X = 1
X = 2
X = 3
X > 0
サンプル出力
2
問題の意味は、いくつかの不等式、要求、満たすことができる不等式の個数を与える.
xは整数ではないので、すべての1-1000を直接列挙し、0.5のすべての最大値を加えるとよい.すなわち、-1-0.5 0 0.5 1 1.5にマッピングする.等号で、直接1を加えて、他のセグメントの1を加えればいいです.複雑度o(n*n);
#define N 2050
#define M 100005
#define maxn 205
#define MOD 1000000000000000007
int n,m,num[N];
char str[20];
int getIndex(int x,bool has){
if(has){
return (x + 1) * 2;
}
else {
return (x + 1) * 2 - 1;
}
}
int main()
{
//freopen("in.txt", "r", stdin);
//freopen("out.txt", "w", stdout);
while(S(n)!=EOF)
{
fill(num,0);
FI(n){
SS(str);
SS(str);
S(m);
if(str[0] == '<'){
if(str[1] == '='){
int x = getIndex(m,true);
For(j,0,x+1){
num[j]++;
}
}
else {
int x = getIndex(m,false);
For(j,0,x+1){
num[j]++;
}
}
}
else if(str[0] == '>'){
if(str[1] == '='){
int x = getIndex(m,true);
for(int j = x;j<N;j++)
num[j]++;
}
else {
int x = getIndex(m,false);
for(int j = x;j<N;j++)
num[j]++;
}
}
else if(str[0] == '='){
int x = getIndex(m,true);
num[x]++;
}
}
int ans = 0;
FI(N) ans = max(ans,num[i]);
printf("%d
",ans);
}
//fclose(stdin);
//fclose(stdout);
return 0;
}