HihoCoder#1133 2점·2점 찾기 k 소수
5523 단어 code
질문
코드:
1 #include <iostream>
2
3 using namespace std;
4
5 int N, K;
6 int *a;
7
8 int search(int left, int right, int k) {
9 if (left > right)
10 return -1;
11 int l = left;
12 int r = right;
13 int p = a[left];
14 while (l < r) {
15 while (l < r && a[r] > p)
16 r--;
17 a[l] = a[r];
18 while (l < r && a[l] < p)
19 l++;
20 a[r] = a[l];
21 }
22 a[l] = p;
23 if ((l - left + 1) == k)
24 return a[l];
25 else if ((l - left + 1) < k)
26 return search(l + 1, right, k - (l - left + 1));
27 else
28 return search(left, l - 1, k);
29 }
30
31 int main() {
32 scanf("%d%d", &N, &K);
33 a = new int[N];
34 for (int i = 0; i < N; i++)
35 scanf("%d", &(a[i]));
36 printf("%d
", search(0, N - 1, K));
37 delete a;
38 return 0;
39 }
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
소스 코드가 포함된 Python 프로젝트텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.