251922026-02-18 12:23:04KevinSzorzatország csapata (40 pont)cpp17Elfogadva 40/409ms528 KiB
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
using pll=pair<ll, ll>;

int main() {
    ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    ll n; cin >> n;
    if (n==1){
        cout << "1 1";
        return 0;
    }
    ll a=0, b=0, c=0, cnt=0;
    vector<ll> hatar(4, 0);
    vector<ll> out(3, -1234);
    for (ll i=0; i<n; i++){
        ll x; cin >> x;
        if (x==0){
            if (out[0]<0){
                out[0]=0;
                out[1]=i; out[2]=i;
            }
            hatar[3]=i-1;
            //cerr << b << ' ' << hatar[0] << ' ' << hatar[3] << '\n';
            if (cnt%2==0){
                if (b>out[0]){
                    out[0]=b;
                    out[1]=hatar[0]; out[2]=hatar[3];
                }
            }
            if (cnt%2==1){
                if (b-c>out[0]){
                    out[0]=b-c;
                    out[1]=hatar[0]; out[2]=hatar[2]-1;
                }
                if (b-a>out[0]){
                    out[0]=b-a;
                    out[1]=hatar[1]+1; out[2]=hatar[3];
                }
            }
            a=0, b=0, c=0, cnt=0;
            hatar[0]=i+1;
            continue;
        }
        if (x%2==0) b++;
        if (cnt==0){
            if (x%2==0) a++;
            if (x<0){
                hatar[1]=i; hatar[2]=i;
                cnt++;
                if (x%2==0) c++;
            }
        }
        else{
            if (x<0){
                hatar[2]=i;
                cnt++;
                c=0;
            }
            if (x%2==0) c++;
        }
    }
    hatar[3]=n-1;
    //cerr << b << ' ' << hatar[0] << ' ' << hatar[3] << '\n';
    if (cnt%2==0){
        if (b>out[0]){
            out[0]=b;
            out[1]=hatar[0]; out[2]=hatar[3];
        }
    }
    if (cnt%2==1){
        if (b-c>out[0]){
            out[0]=b-c;
            out[1]=hatar[0]; out[2]=hatar[2]-1;
        }
        if (b-a>out[0]){
            out[0]=b-a;
            out[1]=hatar[1]+1; out[2]=hatar[3];
        }
    }
    cout << out[1]+1 << ' ' << out[2]+1;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base40/40
1Elfogadva0/01ms512 KiB
2Elfogadva0/08ms316 KiB
3Elfogadva1/11ms316 KiB
4Elfogadva1/11ms316 KiB
5Elfogadva1/11ms352 KiB
6Elfogadva1/11ms316 KiB
7Elfogadva1/11ms316 KiB
8Elfogadva2/21ms508 KiB
9Elfogadva2/21ms316 KiB
10Elfogadva3/38ms424 KiB
11Elfogadva3/38ms420 KiB
12Elfogadva3/38ms528 KiB
13Elfogadva4/49ms316 KiB
14Elfogadva4/47ms316 KiB
15Elfogadva4/48ms420 KiB
16Elfogadva5/58ms500 KiB
17Elfogadva5/58ms316 KiB