| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
悲剧啊,添加了二分,居然teimport java.util.Arrays;
import java.util.Scanner;
public class Main {
private static int[] cows;
private static int len = 0;// 实际长度
private static int binarySearch(int number) {
int p = 0;
int low = 0;
int hight = len - 1;
while (low <= hight) {
int mid = (hight - low) >>> 1;
if (mid < len - 1 && cows[mid] <= number && cows[mid + 1] >= number) {
p = mid + 1;
break;
} else if (mid > 0 && cows[mid] >= number
&& cows[mid - 1] <= number) {
p = mid;
break;
} else if (cows[mid] < number)
low = mid + 1;
else if (cows[mid] > number)
hight = mid - 1;
}
return p;
}
public static void add(int number) {
if (len == 0)
cows[len++] = number;
else {
int temp = number;
if (temp > cows[len - 1])
cows[len++] = temp;
else {
// System.out.println(binarySearch(number));
int t = binarySearch(number);
for (int j = len; j > t; --j) {
cows[j] = cows[j - 1];
}
cows[t] = temp;
// for (int i = 0; i < len; ++i) {
// if (cows[i] > temp) {
// System.out.println("i = " + i);
// for (int j = len; j > i; --j) {
// cows[j] = cows[j - 1];
// }
// cows[i] = temp;
// break;
// }
// }
len++;
}
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int sum = sc.nextInt();
cows = new int[sum];
Arrays.fill(cows, 0);
len = 0;
for (int i = 0; i < sum; ++i) {
int num = sc.nextInt();
add(num);
}
System.out.println(cows[(sum / 2)]);
}
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator