251862026-02-18 12:08:19MatematikaSzorzatország csapata (40 pont)cpp17Hibás válasz 35/4023ms1588 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
	int n; cin >> n;
    array<int,3> ki={0,0,-2};
    vector<int> vec(n), dp(n+2);
    for(auto& z:vec)
        cin >> z;
    vec.push_back(0);
    for(int i=1; i<n+2; i++)
    {
        dp[i]=dp[i-1];
        if(abs(vec[i-1])==2)
            dp[i]++;
        //cerr << dp[i] << " ";
    }
    if(dp.back()==0)
    {
        for(int i=0; i<n; i++)
        {
            if(ki[2]<vec[i])
            {
                ki[2]=vec[i];
                ki[0]=i;
            }
        }
        cout << ki[0]+1 << " " << ki[0]+1;
        return 0;
    }
    int elso=-1, utso=-1, minuszdb=0, utsonulla=-1;
    for(int i=0; i<n+1; i++)
    {
        if(vec[i]==0)
        {
            if(minuszdb & 1)
            {
                if(dp[i+1] - dp[elso+1]>ki[2])
                    ki={elso+1, i-1, dp[i+1] - dp[elso+1]};
                if(dp[utso+1] - dp[utsonulla+1]>ki[2])
                    ki={utsonulla+1, utso-1, dp[utso+1] - dp[utsonulla+1]};
            }
            else
            {
                if(dp[i+1] - dp[utsonulla+1]>ki[2])
                    ki={utsonulla+1, i-1, dp[i+1] - dp[utsonulla+1]};
            }
            elso=-1;
            utso=-1;
            minuszdb=0;
            utsonulla=i;
        }
        if(vec[i]<0)
        {
            minuszdb++;
            if(elso==-1)
                elso=i;
            utso=i;
        }
    }
    if(ki[0]>ki[1])
    {
        int temp=0;
        for(;vec[temp]!=0; temp++){}
        cout << temp+1 << " " << temp+1;
        return 0;
    }
    cout << ki[0]+1 << " " << ki[1]+1; //<< " " << ki[2];
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base35/40
1Elfogadva0/01ms316 KiB
2Elfogadva0/018ms1328 KiB
3Hibás válasz0/11ms316 KiB
4Elfogadva1/11ms316 KiB
5Elfogadva1/11ms340 KiB
6Elfogadva1/11ms316 KiB
7Elfogadva1/11ms316 KiB
8Elfogadva2/21ms316 KiB
9Elfogadva2/21ms316 KiB
10Elfogadva3/323ms1460 KiB
11Elfogadva3/320ms1472 KiB
12Elfogadva3/317ms1456 KiB
13Hibás válasz0/421ms1452 KiB
14Elfogadva4/418ms1588 KiB
15Elfogadva4/417ms1456 KiB
16Elfogadva5/521ms1452 KiB
17Elfogadva5/518ms1332 KiB