hiho week 37 register

Ended

Participants:317

Verdict:Accepted
Score:100 / 100
Submitted:2015-03-15 00:51:11

Lang:GCC

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
#define N_MAX 1000001
int a[N_MAX];
int b[N_MAX];
void CopyBtoA(int s,int t){
    int i;
    for(i=s;i<=t;i++){
        a[i]=b[i];
    }
}
int BinarySearch2(int s,int t,int k){
    int i,j,h;
    int mid;
    if(s<t){
        for(i=s+1,j=s,h=t;i<=t;i++){
            if(a[i]<a[s]){
                b[j]=a[i];
                j++;
            }
            else if(a[i]>a[s]){
                b[h]=a[i];
                h--;
            }
        }
        mid=j;
        b[mid]=a[s];
        CopyBtoA(s,t);
        if(k<mid)   return  BinarySearch2(s,mid-1,k);
        else if(k==mid)  return  a[mid];
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX