알고리즘 훈련 구간 k 대수 조회
문제 설명
시퀀스 를 지정 합 니 다. 매번 질문 시퀀스 의 l 번 째 숫자 에서 r 번 째 숫자 에서 K 번 째 로 큰 숫자 는 무엇 입 니까?
입력 형식
첫 번 째 줄 은 n 을 포함 하여 시퀀스 의 길 이 를 표시 합 니 다.
두 번 째 줄 은 n 개의 정 수 를 포함 하고 주어진 서열 을 표시 합 니 다.
세 번 째 는 정수 m 를 포함 하여 질문 개 수 를 나타 낸다.
다음 m 줄, 각 줄 의 세 번 째 수 l, r, K 는 질문 서열 이 왼쪽 에서 오른쪽으로 l 번 째 수 에서 r 번 째 수 까지 크 고 작은 K 번 째 큰 수 는 어느 것 인지 나타 낸다.시퀀스 요 소 는 1 부터 레이 블 을 시작 합 니 다.
출력 형식
총 m 줄 을 출력 하고 줄 마다 숫자 를 입력 하여 질문 의 답 을 표시 합 니 다.
샘플 입력
5
1 2 3 4 5
2
1 5 2
2 3 2
샘플 출력
4
2
데이터 규모 와 약정
30% 의 데이터 에 대해 n, m < = 100;
100% 의 데이터 에 대해 n, m < = 1000;
보증 k < = (r - l + 1), 서열 중의 수 < = 106.
AC code:
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<queue>
#define LL long long
#define MAXN 150100
#define INF 1000000000
using namespace std;
int a[MAXN],b[MAXN];
int main()
{
int n,m,l,r,k;
while(cin>>n)
{
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
//sort(a+1,a+1+n);
cin>>m;
while(m--)
{
cin>>l>>r>>k;
int cnt=0;
for(int i=l;i<=r;i++)
{
b[++cnt]=a[i];
}
sort(b+1,b+cnt+1);
cout<<b[cnt-k+1]<<endl;
}
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Codility Lesson3】FrogJmpA small frog wants to get to the other side of the road. The frog is currently located at position X and wants to get to...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.