206152026-01-07 20:45:47algoproSíkság (55)cpp17Hibás válasz 51/5512ms1012 KiB
// UUID: a83e8646-9586-4983-849e-a69eb3d7b28a
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

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

    vector<int>h(n);
    for (int i = 0; i <n; i++) cin >> h[i];

    int s = 0, e = 0;
    pair <int,int> lh = {1,1};
    array<pair<int,int> , 3>akt;
    akt[0].first = h[0];
    akt[0].second = 1;
    akt[1].first = -1;
    akt[1].second = 0;
    akt[2].first = -1;
    akt[2].second = 0;

    while(e < n-1){
        
        if (akt[0].second == 0) {
            akt[0].first = akt[1].first;
            akt[0].second = akt[1].second;
            akt[1].first = -1;
            akt[1].second = 0;
        }
        if (akt[1].second == 0) {
            akt[1].first = akt[2].first;
            akt[1].second = akt[2].second;
            akt[2].first = -1;
            akt[2].second = 0;
        }
        
        /*cout << s+1 << " "<<e+1<<'\n';
        cout << akt[0].first << " : "<<akt[0].second<<'\n';
        cout << akt[1].first << " : "<<akt[1].second<<'\n';
        cout << akt[2].first << " : "<<akt[2].second<<"\n\n"; */
        
        if (akt[2].second == 0 && (akt[1].second == 0 || abs(akt[0].first - akt[1].first) == 1)){
            if (e-s+1 > lh.first){
                lh.first = e-s+1;
                lh.second = s+1;
            }

            if (h[e+1] == akt[0].first){
                akt[0].second++;
                e++;
            }
            else if (h[e+1] == akt[1].first){
                akt[1].second++;
                e++;
            }
            else{
                akt[2].first = h[e+1];
                akt[2].second = 1;
                e++;
            }
        }

        else {
            if (h[s] == akt[0].first)akt[0].second--;
            if (h[s] == akt[1].first)akt[1].second--;
            if (h[s] == akt[2].first)akt[2].second--;
            s++;
        }
    }
    if (e-s+1 > lh.first){
                lh.first = e-s+1;
                lh.second = s+1;
            }
    cout << lh.first <<" "<<lh.second;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base51/55
1Elfogadva0/01ms316 KiB
2Elfogadva0/02ms500 KiB
3Elfogadva2/21ms316 KiB
4Hibás válasz0/21ms316 KiB
5Hibás válasz0/21ms316 KiB
6Elfogadva2/21ms316 KiB
7Elfogadva3/31ms316 KiB
8Elfogadva2/21ms316 KiB
9Elfogadva3/32ms316 KiB
10Elfogadva3/32ms508 KiB
11Elfogadva3/32ms508 KiB
12Elfogadva3/32ms316 KiB
13Elfogadva3/312ms820 KiB
14Elfogadva3/38ms820 KiB
15Elfogadva3/39ms820 KiB
16Elfogadva3/312ms820 KiB
17Elfogadva3/312ms1012 KiB
18Elfogadva3/312ms820 KiB
19Elfogadva3/312ms820 KiB
20Elfogadva3/312ms564 KiB
21Elfogadva3/37ms564 KiB
22Elfogadva3/38ms564 KiB