Pagini recente » Cod sursa (job #2208814) | Cod sursa (job #3263653) | Cod sursa (job #2767844) | Cod sursa (job #1963785) | Cod sursa (job #1366374)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Main {
public static int quickSelect(int[] v, int k) {
int left = 0, right = v.length-1;
k --;
while (left < right) {
int l = left, r = right;
int mid = v[(int)(l+r)/2];
while (l < r) {
if (v[l] >= mid) {
int aux = v[r];
v[r] = v[l];
v[l] = aux;
r--;
} else {
l++;
}
}
if (v[l] > mid) {
l--;
}
if (k <= l) {
right = l;
} else {
left = l+1;
}
}
return v[k];
}
public static void main(String[] args) throws IOException {
BufferedReader buffer = new BufferedReader(new FileReader("sdo.in"));
String[] line = buffer.readLine().split(" ");
int n = Integer.parseInt(line[0]);
int k = Integer.parseInt(line[1]);
line = buffer.readLine().split(" ");
int[] numbers = new int[n+1];
for (int i = 0; i < n; i++) {
numbers[i] = Integer.parseInt(line[i]);
}
buffer.close();
BufferedWriter out = new BufferedWriter(new FileWriter("sdo.out"));
out.write(Integer.toString(quickSelect(numbers, k+1)));
out.write("\n");
out.close();
}
}