码迷,mamicode.com
首页 > 其他好文 > 详细

hihoCoder挑战赛14 -1223

时间:2015-08-30 23:04:21      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:

描述

给定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

题目并没有要求X一定是整数。所以如果算法是枚举X然后统计成立的不等式数目的话,需要每次+0.5枚举所有可能X。
技术分享
//作者:1085422276
#include <cstdio>
#include <cmath>
#include <cstring>
#include <ctime>
#include <iostream>
#include <algorithm>
#include <set>
#include <vector>
#include <sstream>
#include <queue>
#include <typeinfo>
#include <fstream>
#include<bits/stdc++.h>
#include <map>
#include <stack>
typedef long long ll;
using namespace std;
const int inf = 10000000;
inline ll Read()
{
    ll x=0,f=1;
    char ch=getchar();
    while(ch<0||ch>9)
    {
        if(ch==-)f=-1;
        ch=getchar();
    }
    while(ch>=0&&ch<=9)
    {
        x=x*10+ch-0;
        ch=getchar();
    }
    return x*f;
}
ll exgcd(ll a,ll b,ll &x,ll &y)
{
    ll temp,p;
    if(b==0)
    {
        x=1;
        y=0;
        return a;
    }
    p=exgcd(b,a%b,x,y);
    temp=x;
    x=y;
    y=temp-(a/b)*y;
    return p;
}
//*******************************
#define N 101
int ans=0,a[N],n,s[N];char b[N][20];

int main()
 {
     n=Read();
     for (int i=1;i<=n;i++)
      {
          scanf("%s%s%d",b[i],b[i],&a[i]);
          s[i]=strlen(b[i]);
      }
     for(double  t=-0.5;t<=1004; t+=0.5)
      {
          int k=0;
          for (int i=1;i<=n;i++)
           if ((t==a[i]&&b[i][0]===)||(t==a[i]&&s[i]==2&&b[i][1]===))
             k++;
             else if (t>a[i]&&b[i][0]==>) k++;
             else if (t<a[i]&&b[i][0]==<) k++;
          ans=max(ans,k);
      }
     cout <<ans<<endl;
     return 0;
 }
代码来自status

 

hihoCoder挑战赛14 -1223

标签:

原文地址:http://www.cnblogs.com/zxhl/p/4771779.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!