56312023-08-29 13:21:07TomaSajtLegtöbbször szomszédok (75 pont)cpp17Részben helyes 73/7514ms8620 KiB
#include <bits/stdc++.h>
using namespace std;

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]++;
  }

  auto cmp = [](auto& p1, auto& p2) { return p1.second < p2.second; };

  auto [a, b] = *max_element(min_more_ind_cnt.begin(), min_more_ind_cnt.end(), cmp);
  auto [c, d] = *max_element(max_less_ind_cnt.begin(), max_less_ind_cnt.end(), cmp);

  cout << a << ' ' << b << '\n';
  cout << c << ' ' << d;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base73/75
1Elfogadva0/03ms1972 KiB
2Elfogadva0/014ms3412 KiB
3Részben helyes1/23ms2820 KiB
4Részben helyes1/22ms2912 KiB
5Elfogadva4/43ms3076 KiB
6Elfogadva4/43ms3204 KiB
7Elfogadva3/33ms3432 KiB
8Elfogadva4/43ms3644 KiB
9Elfogadva4/43ms4152 KiB
10Elfogadva4/44ms4168 KiB
11Elfogadva4/44ms4312 KiB
12Elfogadva4/44ms4752 KiB
13Elfogadva4/44ms4892 KiB
14Elfogadva4/44ms4892 KiB
15Elfogadva4/44ms5256 KiB
16Elfogadva4/46ms5820 KiB
17Elfogadva4/48ms5804 KiB
18Elfogadva4/48ms6256 KiB
19Elfogadva4/414ms7116 KiB
20Elfogadva4/414ms7512 KiB
21Elfogadva4/414ms7780 KiB
22Elfogadva4/414ms8620 KiB