251652026-02-18 10:18:57MatematikaSzorzatország csapata (40 pont)cpp17Hibás válasz 34/4024ms1844 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
	int n; cin >> n;
    array<int,3> ki={0,0,0};
    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] << " ";
    }
    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;
        }
    }
    cout << ki[0]+1 << " " << ki[1]+1; //<< " " << ki[2];
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base34/40
1Elfogadva0/01ms316 KiB
2Elfogadva0/020ms1664 KiB
3Hibás válasz0/11ms316 KiB
4Elfogadva1/11ms316 KiB
5Elfogadva1/11ms316 KiB
6Elfogadva1/11ms316 KiB
7Hibás válasz0/11ms316 KiB
8Elfogadva2/21ms376 KiB
9Elfogadva2/21ms316 KiB
10Elfogadva3/324ms1844 KiB
11Elfogadva3/320ms1452 KiB
12Elfogadva3/319ms1648 KiB
13Hibás válasz0/423ms1588 KiB
14Elfogadva4/419ms1460 KiB
15Elfogadva4/419ms1468 KiB
16Elfogadva5/523ms1460 KiB
17Elfogadva5/519ms1464 KiB