42232023-03-16 17:42:46MarkopoloKarácsonyi égőkcpp11Accepted 100/10071ms7612 KiB
#include<bits/stdc++.h>
using namespace std;
/*
10 4
0 1 3 0 0 1 2 0 2 3
*/
int main()
{
    int n,c,i,sz,h=0,kicsi,nagy,tav,kt; // h a szin vektor kitoltott elemeinek szama
    cin>>n>>c;
    vector<int> szin(c,-1); // ez az indextabla
    vector<int> ego(n);
    for(i=0;i<n;i++)
        cin>>ego.at(i);
    bool t=false;
    for(i=0;i<n;i++)
    {
        sz=ego.at(i);
        if(szin.at(sz)==-1)
        {
            h++;
            szin.at(sz)=i;
            if(h==c) // amiko tele van sz index
            {
                kicsi=*min_element(szin.begin(),szin.end());
                nagy=*max_element(szin.begin(),szin.end());
                t=true;
                tav=nagy-kicsi+1;
                kt=t;
            }
        }
        else if(!t)
            szin.at(sz)=i;
        else if(t && szin.at(sz)==kicsi)
        {
            szin.at(sz)=i;
            kicsi=*min_element(szin.begin(),szin.end());
            nagy=*max_element(szin.begin(),szin.end());
            tav=nagy-kicsi+1;
            if(tav<kt)
                kt=tav;
        }
        else if(t)
        {
            szin.at(sz)=i;
        }
    }
    cout<<tav;
    return 0;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted3ms1808 KiB
2Accepted3ms2000 KiB
subtask215/15
3Accepted37ms3436 KiB
4Accepted37ms3568 KiB
5Accepted37ms3788 KiB
6Accepted3ms2652 KiB
7Accepted3ms2872 KiB
subtask310/10
8Accepted3ms2988 KiB
9Accepted3ms3164 KiB
10Accepted3ms3368 KiB
11Accepted3ms3456 KiB
12Accepted3ms3592 KiB
subtask420/20
13Accepted3ms3740 KiB
14Accepted3ms3848 KiB
15Accepted3ms3716 KiB
16Accepted3ms3972 KiB
17Accepted3ms4048 KiB
subtask525/25
18Accepted4ms4352 KiB
19Accepted4ms4360 KiB
20Accepted4ms4444 KiB
21Accepted4ms4364 KiB
22Accepted3ms4364 KiB
subtask630/30
23Accepted71ms7612 KiB
24Accepted48ms6008 KiB
25Accepted56ms5988 KiB
26Accepted65ms6152 KiB
27Accepted68ms6732 KiB
28Accepted54ms6020 KiB
29Accepted50ms6104 KiB
30Accepted37ms6188 KiB