77 2021. 01. 10 12:01:20 Babják Péter Inverzió cpp11 Elfogadva 50/50 92ms 13580 KiB
#include <bits/stdc++.h>
#define ll long long
using namespace std;		//Babják Péter-Bíróról visszatöltve 
int main()
{
    ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
    int n;cin>>n;
    int t[n];
    for(int i=0;i<n;i++)	//inverzió, mivel minden elem 1 szer szerepel,ezért "kifordíthatod" a bemenetet.
    {
        int b;
        cin>>b;b--;
        t[b]=i;
    }
    int mx=-1,ansi=-1,ansj=-1, ansm=-1;
    for(int i=0;i<n;i++)//ezért ahogy sorban haladsz a kifordított tömbön mindre igaz lesz hogy az elõtte levõ kisebb nála, és ha elõrébb van 
    {
       if(t[i]>mx)//maximumot vizsgálsz
       {
           mx=t[i];
       }
       if(mx-t[i]>ansm)//biztosan van ilyen inverzió, mert mx kisebb szám mint az aktuális, így a maximális inverzió aminek i része az mx-t[i]
       {
           ansm=mx-t[i];
           ansi=mx;
           ansj=t[i];
       }
    }
    if(ansm<1)//-1 vagy 0, azaz vagy 1 elem volt vagy nem volt inverzió
    {
        cout<<-1<<endl;
        return 0;
    }
    cout<<ansj+1<<" "<<ansi+1<<endl;//futásidõ: O(N)
    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 2ms 1876 KiB
2 Elfogadva 0/0 6ms 2604 KiB
3 Elfogadva 1/1 1ms 2208 KiB
4 Elfogadva 2/2 1ms 2196 KiB
5 Elfogadva 7/7 1ms 2228 KiB
6 Elfogadva 2/2 6ms 2812 KiB
7 Elfogadva 2/2 52ms 6404 KiB
8 Elfogadva 2/2 83ms 8172 KiB
9 Elfogadva 2/2 92ms 8172 KiB
10 Elfogadva 2/2 74ms 8180 KiB
11 Elfogadva 2/2 67ms 8172 KiB
12 Elfogadva 2/2 71ms 9264 KiB
13 Elfogadva 2/2 65ms 10380 KiB
14 Elfogadva 2/2 65ms 10384 KiB
15 Elfogadva 2/2 54ms 10380 KiB
16 Elfogadva 2/2 76ms 10380 KiB
17 Elfogadva 2/2 70ms 10380 KiB
18 Elfogadva 2/2 68ms 10388 KiB
19 Elfogadva 3/3 50ms 10388 KiB
20 Elfogadva 3/3 50ms 10388 KiB
21 Elfogadva 2/2 52ms 10380 KiB
22 Elfogadva 2/2 65ms 10392 KiB
23 Elfogadva 2/2 61ms 10380 KiB
24 Elfogadva 2/2 50ms 13580 KiB