237312026-01-28 14:34:46sarminSíkság (55)cpp17Elfogadva 55/5518ms1004 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
// const ll MOD = 1e9+7;

#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()

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

    int n; cin >> n;
    vector<int> a(n+2, INT_MAX);
    for (int i = 1; i <= n; i++) cin >> a[i];
    
    int r = 1;
    map<int, int> van;
    van[a[1]]++;
    int len = 1, st = 1;
    for (int l = 1; l <= n; l++) {
    	//cerr << "l === " << l << "\n";
    	//cerr << "r === " << r << "\n";
    	while (true) {
    		bool s = (!van.count(a[l]+1) && a[r+1] == a[l]-1) || (!van.count(a[l]-1) && a[r+1] == a[l]+1) || (a[r+1] == a[l]);
    		if (!s) {
    			/*cerr << "l=" << l << "; r=" << r << " - " << s << "\n";
    			cerr << van.count(a[l]-1) << " " << a[r+1] << " " << a[l]+1 << "\n";*/
    			break;
    		}
    		r++;
    		if (r-l+1 > len) {	
		    	len = r-l+1;
		    	st = l;
	    	}
    		van[a[r]]++;
    		/*cerr << l << " " << r << "\n";
    		cerr << "    van:\n";
    		for (auto [x, y] : van) cerr << "    " << x << " " << y << "\n";
    		cerr << "\n";*/
    	}
    	
    	van[a[l]]--;
    	if (van[a[l]] == 0) van.erase(a[l]);
    }
    
    cout << len << " " << st << "\n";

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base55/55
1Elfogadva0/01ms492 KiB
2Elfogadva0/03ms316 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/22ms316 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/21ms316 KiB
7Elfogadva3/31ms316 KiB
8Elfogadva2/21ms316 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/32ms316 KiB
11Elfogadva3/32ms316 KiB
12Elfogadva3/32ms316 KiB
13Elfogadva3/316ms820 KiB
14Elfogadva3/310ms820 KiB
15Elfogadva3/313ms820 KiB
16Elfogadva3/314ms820 KiB
17Elfogadva3/316ms820 KiB
18Elfogadva3/318ms1004 KiB
19Elfogadva3/317ms820 KiB
20Elfogadva3/317ms820 KiB
21Elfogadva3/39ms760 KiB
22Elfogadva3/312ms568 KiB