8168 2024. 01. 12 15:31:34 renn Fasor (40) cpp17 Hibás válasz 36/40 30ms 7252 KiB
#include <bits/stdc++.h>

using namespace std;
typedef pair<int,int> pi;

struct comp {
    bool operator()(pi& a, pi& b)
    {
        return a.second == b.second ? a.first > b.first : a.second < b.second;
    }
};



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

    int n, k, c;
    cin >> n >> k;

    priority_queue<pi, vector<pi>, comp> curr_max;

    for(int i = 0; i < k; i++)
    {
        cin >> c;
        curr_max.push({i, c});
        //cout << "m: " << curr_max.top().second << " i: " << curr_max.top().first << "\n";
    }
    for(int i = k; i < n; i++)
    {
        cin >> c;
        while(curr_max.top().first < i-k) curr_max.pop();
        curr_max.push({i, c});
        //cout << "m: " << curr_max.top().second << " i: " << curr_max.top().first << "\n";

        if(curr_max.top().first == i-k) // JOO LESZ EZ
        {
            for(int j = i+1; j < n; j++) cin >> c;

            cout << i-k+1 << "\n";
            exit(0);
        }
    }
    while(curr_max.top().first < n-k-1) curr_max.pop();

    cout << (curr_max.top().first == n-1 ? n : -1) << "\n";

    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 36/40
1 Elfogadva 0/0 3ms 1956 KiB
2 Elfogadva 0/0 4ms 2064 KiB
3 Elfogadva 2/2 3ms 2276 KiB
4 Elfogadva 2/2 3ms 2372 KiB
5 Elfogadva 2/2 3ms 2464 KiB
6 Elfogadva 2/2 3ms 2432 KiB
7 Elfogadva 2/2 3ms 2436 KiB
8 Elfogadva 2/2 3ms 2444 KiB
9 Elfogadva 2/2 4ms 2656 KiB
10 Elfogadva 2/2 4ms 2880 KiB
11 Elfogadva 2/2 4ms 2972 KiB
12 Elfogadva 2/2 3ms 2960 KiB
13 Elfogadva 2/2 17ms 5004 KiB
14 Hibás válasz 0/2 19ms 7252 KiB
15 Elfogadva 2/2 28ms 7100 KiB
16 Elfogadva 2/2 28ms 5196 KiB
17 Elfogadva 2/2 30ms 5280 KiB
18 Elfogadva 2/2 29ms 5256 KiB
19 Elfogadva 2/2 30ms 5104 KiB
20 Hibás válasz 0/2 13ms 5108 KiB
21 Elfogadva 2/2 28ms 7172 KiB
22 Elfogadva 2/2 30ms 5364 KiB