Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <cstdio>#define swap(a,b) (a) ^= (b) ^= (a) ^= (b)const int MAXINT = 1000000+10;const int FALSE = -1;int a[MAXINT];int search(int left, int right ,int k){if(left>right)return FALSE;int pv = left;int i =left+1 ;for (int j = left+1; j <= right; j++){if(a[j]>a[pv])continue;else{if(i!=j)swap(a[i],a[j]);i++;}}i--;if(i!=pv)swap(a[i],a[pv]);if (i==k)return a[i];else if(i>k)return search(left, i-1, k);else