1865 2022. 12. 06 10:01:05 kdb Legtöbbször szomszédok (75 pont) cpp11 Hibás válasz 18/75 13ms 7072 KiB
#include <iostream>
#include <vector>
using namespace std;

std::ostream& operator<<(std::ostream& os, const std::vector<pair<int, int>>& input)
{
    for (auto const& i : input) {
        os << i.first << " " << i.second << endl;
    }
    return os;
}

int main()
{
    cin.tie(nullptr);
    cout.tie(nullptr);
    ios_base::sync_with_stdio(false);
    int n, m;
    cin >> n >> m;
    vector<pair<int, int>> vec;
    for (int i = 0; i < m-1; i++)
    {
        int a;
        cin >> a;
        vec.push_back(make_pair(a, 0));
    }
    int x;
    cin >> x;
    vec.push_back(make_pair(-1, 0));
    for (int i = 0; i < n - m; i++)
    {
        int a;
        cin >> a;
        vec.push_back(make_pair(a, 0));
    }
    int elotte = 0, elotteHely = 0, utana = 10001, utanaHely = 0;
    for (int i = 0; i < n -1; i++)
    {
        if (vec[i].first > x && vec[i].first < utana)
        {
            utana = vec[i].first;
            utanaHely = i;
            vec[utanaHely].second++;
        }
        else
        {
            if(i>=m-1)
            vec[utanaHely].second++;
        }
        if (vec[i].first <x && vec[i].first > elotte)
        {
            elotte = vec[i].first;
            elotteHely = i;
            vec[elotteHely].second++;
        }
        else
        {
            if (i >= m - 1)
            vec[elotteHely].second++;
        }
    }
    int mini = 10001, minhely = 0, maxi = 0, maxhely = 0;
    for (int i = 0; i < n - 1; i++)
    {
        if (vec[i].second > mini && vec[i].first > x)
        {
            mini = vec[i].second;
            minhely = i;
        }
        if (vec[i].second > maxi && vec[i].first < x)
        {
            maxi = vec[i].second;
            maxhely = i;
        }
    }
    //cout << vec;
    cout << minhely +1 << " " << vec[minhely].second << endl << maxhely +1 << " " << vec[maxhely].second << endl;
    return 0;
}

/*
10 3
8 2 6 3 9 4 6 8 1 5
*/
Részfeladat Összpont Teszt Verdikt Idő Memória
base 18/75
1 Elfogadva 0/0 3ms 1704 KiB
2 Elfogadva 0/0 12ms 4028 KiB
3 Hibás válasz 0/2 2ms 2340 KiB
4 Hibás válasz 0/2 2ms 2384 KiB
5 Részben helyes 2/4 2ms 2496 KiB
6 Részben helyes 2/4 2ms 2688 KiB
7 Hibás válasz 0/3 2ms 2896 KiB
8 Részben helyes 2/4 2ms 3104 KiB
9 Hibás válasz 0/4 3ms 3340 KiB
10 Hibás válasz 0/4 3ms 3684 KiB
11 Hibás válasz 0/4 3ms 3780 KiB
12 Hibás válasz 0/4 4ms 4188 KiB
13 Hibás válasz 0/4 4ms 4392 KiB
14 Részben helyes 2/4 4ms 4740 KiB
15 Hibás válasz 0/4 4ms 4832 KiB
16 Hibás válasz 0/4 4ms 5036 KiB
17 Hibás válasz 0/4 6ms 5588 KiB
18 Hibás válasz 0/4 7ms 5584 KiB
19 Részben helyes 2/4 13ms 6572 KiB
20 Részben helyes 2/4 13ms 6556 KiB
21 Részben helyes 2/4 13ms 6872 KiB
22 Elfogadva 4/4 13ms 7072 KiB