9092 2024. 02. 13 20:15:03 RRoli Síkság (55) cpp17 Elfogadva 55/55 39ms 4824 KiB
#include <iostream>
#include <set>

using namespace std;

int n, a[100001], sz[100001], maxi_l = 1, maxi_r = 1;
set<int> van;

int main()
{
    cin >> n;
    for(int i = 1; i <= n; i++) cin >> a[i];

    int l = 1;
	van.insert(a[1]);
    sz[a[1]]++;

    for(int r = 2; r <= n; r++) {
        sz[a[r]]++;
		van.insert(a[r]);
		set<int> torol;
		for(int i : van) {
			if(abs(a[r] - i) > 1) {
				while(sz[i] != 0) {
					l++;
					sz[a[l-1]]--;
				}
				torol.insert(i);
			}
		}
		for(int i : torol) van.erase(i); 
		if(r-l > maxi_r-maxi_l) {maxi_r = r; maxi_l = l;}
    }

	cout << maxi_r-maxi_l+1 << ' ' << maxi_l;

    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 55/55
1 Elfogadva 0/0 3ms 1820 KiB
2 Elfogadva 0/0 6ms 2224 KiB
3 Elfogadva 2/2 3ms 2224 KiB
4 Elfogadva 2/2 3ms 2340 KiB
5 Elfogadva 2/2 3ms 2416 KiB
6 Elfogadva 2/2 3ms 2540 KiB
7 Elfogadva 3/3 3ms 2752 KiB
8 Elfogadva 2/2 3ms 2848 KiB
9 Elfogadva 3/3 3ms 2840 KiB
10 Elfogadva 3/3 6ms 3228 KiB
11 Elfogadva 3/3 4ms 3340 KiB
12 Elfogadva 3/3 4ms 3300 KiB
13 Elfogadva 3/3 37ms 4344 KiB
14 Elfogadva 3/3 21ms 4368 KiB
15 Elfogadva 3/3 28ms 4460 KiB
16 Elfogadva 3/3 37ms 4572 KiB
17 Elfogadva 3/3 37ms 4824 KiB
18 Elfogadva 3/3 39ms 4800 KiB
19 Elfogadva 3/3 37ms 4776 KiB
20 Elfogadva 3/3 37ms 4776 KiB
21 Elfogadva 3/3 21ms 4508 KiB
22 Elfogadva 3/3 29ms 4688 KiB