1753: [Usaco2005 qua]Who's in the Middle
2015-04-15 12:05
357 查看
1753: [Usaco2005 qua]Who's in the Middle
Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 290 Solved: 242
[Submit][Status][Discuss]
Description
FJ is surveying his herd to find the most average cow. He wants to know how much milk this 'median' cow gives: half of the cows give as much or more than the median; half give as much or less. Given an odd number of cows N (1 <= N < 10,000) and their milk output (1..1,000,000), find the median amount of milk given such that at least half the cows give the same amount of milk or more and at least half give the same or less. 输入N个数,输出升序排列后中间那个数.Input
* Line 1: A single integer N * Lines 2..N+1: Each line contains a single integer that is the milk output of one cow.Output
* Line 1: A single integer that is the median milk output.Sample Input
52
4
1
3
5
INPUT DETAILS:
Five cows with milk outputs of 1..5
Sample Output
3OUTPUT DETAILS:
1 and 2 are below 3; 4 and 5 are above 3.
HINT
Source
Gold题解:难以想象这样的题目居然是usaco金组的= =,汗。。
其实直接排序就好啦,但是这样子太没意思了,于是来个简单的小优化(程序如下,很清晰,相信你们一定看得懂)
/************************************************************** Problem: 1753 User: HansBug Language: Pascal Result: Accepted Time:12 ms Memory:616 kb ****************************************************************/ var i,j,k,l,m,n,x,y:longint; a:array[0..100000] of longint; procedure sort(l,r:longint); var i,j,x,y:longint; begin if (l>m) or (r<m) then exit; //here!!!^_^ i:=l;j:=r;x:=a[(l+r) div 2]; repeat while a[i]<x do inc(i); while a[j]>x do dec(j); if i<=j then begin y:=a[i];a[i]:=a[j];a[j]:=y; inc(i);dec(j); end; until i>j; if i<r then sort(i,r); if l<j then sort(l,j); end; begin readln(n);m:=(1+n) div 2; for i:=1 to n do readln(a[i]); sort(1,n); writeln(a[m]); readln; end.
相关文章推荐
- bzoj 1753: [Usaco2005 qua]Who's in the Middle【排序】
- bzoj1753 [Usaco2005 qua]Who's in the Middle
- BZOJ1753 [Usaco2005 qua]Who's in the Middle
- BZOJ1753: [Usaco2005 qua]Who's in the Middle
- 1753: [Usaco2005 qua]Who's in the Middle (快速排序)
- bzoj1753 [Usaco2005 qua]Who's in the Middle
- bzoj1753 [Usaco2005 qua]Who's in the Middle
- BZOJ 1753 Who's in the Middle
- HDU 1157 Who's in the Middle
- POJ 2388 Who's in the Middle
- 山理和山建大一新生友谊赛 A - Who's in the Middle
- POJ 2388 Who's in the Middle(堆排序)
- 1752: [Usaco2005 qua]Til the Cows Come Home (SPFA)
- POJ 2388 Who's in the Middle
- poj2388-Who's in the Middle(排序)
- Who's in the Middle[HDU1157]
- poj 2388 Who's in the Middle
- Hdu 1157 Who's in the Middle
- 第K小数 uva 10041 - Vito's Family poj 2388 Who's in the Middle
- 2388 -- Who's in the Middle(解题报告)