您的位置:首页 > 其它

uva10057 A mid-summer night's dream.

2014-09-22 21:15 375 查看
开始题目理解错了,wa了几次。

第二个数字是指input里面满足要求的所有数字的个数,我理解成了最小的那个数字的个数。。。。

整体比较简单,就是找中位数

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define MAX 70000
using namespace std;

int  N,s[MAX];
int all,small,MAXX;

void solve()
{
int i=0,j,t,help;
for(j=0;j<=MAXX;j++)
{
i+=s[j];
if(i>=all-i)
break;
}
if(i>all-i)
{
t=j,help=0;
}
else
{
help=1;
for(t=j+1;t<=MAXX;t++)
{
if(s[t]!=0)
break;
}
}
printf("%d %d %d\n",j,s[j]+help,t-j+1);
}

int main()
{
int i,j;
while(scanf("%d",&N)!=EOF)
{
all=0;
MAXX=-1;
memset(s,0,MAX*4);
for(i=0;i<N;i++)
{
scanf("%d",&j);
all++;
s[j]++;
if(j>MAXX)
MAXX=j;
}
solve();
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: