codeforce -------以下

あなたは長さn及び整数k個の整数の配列を与えられています。あなたは、[1、109]の範囲で任意の整数xを印刷しなければならない(すなわち1≤x≤109)そのような正確に所定の配列の要素をk個こと未満であるか、または配列が等しいelements.Ifを含むことができることx.Noteに等しいですそのようなxは、印刷「-1」(引用符なし)入力の.InputThe最初の行は、数字nとk(1≤n≤2⋅105、0≤k≤n)整数含まれていません。所定の配列の正確k個の要素があるように、配列は、範囲[109 1]から任意の整数xをitself.OutputPrint -入力の2行目は数字は、A2、...、(1≤ai≤109)をA1整数N含有します以下、またはそのようなX、印刷がないx.Ifに等しい「-1」(引用符).ExamplesInputCopy7 4
3 7 5 1 10 3 20
OutputCopy6InputCopy7 2
3 7 5 1 10 3 20
OutputCopy-1
インデックスを持つ要素[1,3,4,6-が】未満であるか、または5に等しく、明らか未満又は6.Inに等しいので、第一実施例5はまた、有効な回答であるNoteIn第二の例では、任意の数のことを選択することができません所定の配列の2つだけの要素は3ので未満であるか、この数に等しくなります

タイトル効果:
シーケンスは、x(1 <= X <=シーク、n個の要素を含む 1E9) k個の要素が正確にXに等しい未満であります

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
using namespace std;
const int N = 2e5 + 10;
typedef long long LL;
int n, k;
LL a[N];
int main(){
 cin >> n >> k;
 for (int i = 0; i < n; i ++)
 scanf("%d", &a[i]);
  sort(a, a + n);
 if (!k){
  if (a[0] - 1 >= 1)    cout << a[0] - 1 << endl;
  else                  cout << -1 << endl;
 }
 else{
  if (a[k] != a[k - 1])    cout << a[k - 1] << endl;
  else                     cout << -1 << endl;
 }
  return 0;
}
公開された106元の記事 ウォン称賛67 ビュー5410

おすすめ

転載: blog.csdn.net/qq_45772483/article/details/105050833