5633 2023. 08. 29 13:33:30 TomaSajt Legtöbbször szomszédok (75 pont) cpp17 Elfogadva 75/75 14ms 5384 KiB
#include <bits/stdc++.h>
using namespace std;

ostream& operator<<(ostream& s, const pair<int, int>& p) {
  return s << p.first << ' ' << p.second;
}

pair<int, int> get_res(map<int, int>& cnt_map) {
  return *max_element(cnt_map.begin(), cnt_map.end(), [](auto& p1, auto& p2) { return p1.second < p2.second; });
}

int main() {
  cin.tie(0), ios::sync_with_stdio(0);

  int n, m;
  cin >> n >> m;

  int max_less_ind = -1, min_more_ind = -1;
  map<int, int> max_less_ind_cnt, min_more_ind_cnt;

  vector<int> scores(n + 1);
  for (int i = 1; i <= n; i++) cin >> scores[i];
  bool track = 0;
  for (int i = 1; i <= n; i++) {
    if (i == m) track = 1;

    if (scores[i] > scores[m] && (min_more_ind == -1 || scores[i] < scores[min_more_ind])) min_more_ind = i;
    if (scores[i] < scores[m] && (max_less_ind == -1 || scores[i] > scores[max_less_ind])) max_less_ind = i;

    if (!track) continue;
    if (max_less_ind != -1) max_less_ind_cnt[max_less_ind]++;
    if (min_more_ind != -1) min_more_ind_cnt[min_more_ind]++;
  }

  if (min_more_ind == -1)
    cout << -1 << '\n';
  else
    cout << get_res(min_more_ind_cnt) << '\n';

  if (max_less_ind == -1)
    cout << -1;
  else
    cout << get_res(max_less_ind_cnt);
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 75/75
1 Elfogadva 0/0 3ms 1704 KiB
2 Elfogadva 0/0 13ms 2564 KiB
3 Elfogadva 2/2 2ms 2072 KiB
4 Elfogadva 2/2 3ms 2312 KiB
5 Elfogadva 4/4 3ms 2664 KiB
6 Elfogadva 4/4 3ms 2768 KiB
7 Elfogadva 3/3 3ms 2928 KiB
8 Elfogadva 4/4 3ms 2952 KiB
9 Elfogadva 4/4 3ms 3312 KiB
10 Elfogadva 4/4 4ms 3536 KiB
11 Elfogadva 4/4 3ms 3496 KiB
12 Elfogadva 4/4 4ms 3528 KiB
13 Elfogadva 4/4 4ms 3652 KiB
14 Elfogadva 4/4 4ms 3764 KiB
15 Elfogadva 4/4 4ms 3708 KiB
16 Elfogadva 4/4 6ms 4036 KiB
17 Elfogadva 4/4 7ms 4044 KiB
18 Elfogadva 4/4 8ms 4348 KiB
19 Elfogadva 4/4 14ms 4820 KiB
20 Elfogadva 4/4 14ms 5032 KiB
21 Elfogadva 4/4 14ms 5104 KiB
22 Elfogadva 4/4 14ms 5384 KiB