本文主要是介绍uva10057 A mid-summer night's dream.,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
开始题目理解错了,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;
}
这篇关于uva10057 A mid-summer night's dream.的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!