632021-01-09 16:25:51Kevinke12Inverziócpp11Időlimit túllépés 41/50560ms13944 KiB
#include <iostream>
#include <vector>
using namespace std;

vector<int> t;
int dp[500005];
int hely[500005];
int N, kezd=-1, veg=-200000, be, eMax=0;

int Melyik(int szam)
{
    if(szam>eMax)
        return szam;
    for(int i = szam+1; i <= N; i++)
    {
        if(dp[i]!=0)
            return i;
    }
    return szam;
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);

    cin >> N;
    for(int i = 0; i < N; i++)
    {
        cin >> be;
        t.push_back(be);
        hely[be]=i;
        eMax=max(be, eMax);

        dp[t[i]]=t[i]; //onmaga
        dp[t[i]] = dp[Melyik(t[i])];

        if(abs(hely[t[i]]-hely[dp[t[i]]]) > veg-kezd)
        {
            kezd=min(hely[t[i]], hely[dp[t[i]]]);
            veg=max(hely[t[i]], hely[dp[t[i]]]);
        }
    }
    /*for(int i = 1; i <= N; i++)
    {
        if(abs(hely[i]-hely[dp[i]]) > veg-kezd)
        {
            kezd=min(hely[i], hely[dp[i]]);
            veg=max(hely[i], hely[dp[i]]);
        }
    }*/
    if((kezd==-1) || (kezd==veg))
        cout << "-1\n";
    else
        cout << kezd+1 << " " << veg+1 << "\n";
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base41/50
1Elfogadva0/02ms1832 KiB
2Elfogadva0/014ms3304 KiB
3Elfogadva1/11ms1916 KiB
4Elfogadva2/21ms1936 KiB
5Elfogadva7/71ms1936 KiB
6Elfogadva2/28ms3340 KiB
7Időlimit túllépés0/2523ms5468 KiB
8Elfogadva2/2109ms13752 KiB
9Elfogadva2/2104ms13840 KiB
10Elfogadva2/2119ms13620 KiB
11Elfogadva2/287ms13700 KiB
12Elfogadva2/286ms13944 KiB
13Elfogadva2/2144ms13792 KiB
14Elfogadva2/279ms13760 KiB
15Elfogadva2/2388ms13744 KiB
16Elfogadva2/2108ms13724 KiB
17Elfogadva2/294ms13820 KiB
18Elfogadva2/285ms13708 KiB
19Elfogadva3/3407ms13744 KiB
20Időlimit túllépés0/3513ms13704 KiB
21Időlimit túllépés0/2504ms13788 KiB
22Elfogadva2/296ms13736 KiB
23Elfogadva2/290ms13808 KiB
24Időlimit túllépés0/2560ms996 KiB