27642023-01-22 21:43:08KovácsHunorKarácsonyi égőkcpp11Hibás válasz 0/10035ms5172 KiB
#include <iostream>
#include <cstring>
using namespace std;

const int MAX_N = 100000;

int n, c;
int l[MAX_N];
bool used[MAX_N];
int ans = MAX_N;
int cnt = 0;
int start = 0;

int main() {
    cin >> n >> c;
    for (int i = 0; i < n; i++) {
        cin >> l[i];
    }

    for (int end = 0; end < n; end++) {
        if (!used[l[end]]) {
            used[l[end]] = true;
            cnt++;
        }
        while (cnt == c) {
            ans = min(ans, end - start + 1);
            used[l[start]] = false;
            cnt--;
            start++;
        }
    }
    cout << ans << endl;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Hibás válasz3ms1760 KiB
2Hibás válasz2ms1920 KiB
subtask20/15
3Hibás válasz19ms2764 KiB
4Hibás válasz18ms2892 KiB
5Hibás válasz18ms3000 KiB
6Hibás válasz2ms2356 KiB
7Hibás válasz2ms2532 KiB
subtask30/10
8Elfogadva2ms2776 KiB
9Hibás válasz2ms2972 KiB
10Hibás válasz2ms3172 KiB
11Hibás válasz2ms3380 KiB
12Hibás válasz2ms3488 KiB
subtask40/20
13Hibás válasz2ms3568 KiB
14Hibás válasz2ms3564 KiB
15Hibás válasz2ms3428 KiB
16Elfogadva2ms3560 KiB
17Hibás válasz2ms3660 KiB
subtask50/25
18Elfogadva3ms3676 KiB
19Hibás válasz3ms3668 KiB
20Hibás válasz3ms3796 KiB
21Hibás válasz3ms3872 KiB
22Hibás válasz3ms4024 KiB
subtask60/30
23Futási hiba35ms5172 KiB
24Hibás válasz26ms4916 KiB
25Hibás válasz28ms4916 KiB
26Hibás válasz34ms4872 KiB
27Hibás válasz35ms4976 KiB
28Hibás válasz28ms4880 KiB
29Hibás válasz26ms4884 KiB
30Hibás válasz18ms4828 KiB