Submission #878193

#TimeUsernameProblemLanguageResultExecution timeMemory
878193heeheeheehaawMoney (IZhO17_money)C++17
100 / 100
109 ms8492 KiB
#include <bits/stdc++.h>
#pragma GCC optimize("O3,unroll-loops")

using namespace std;

int n, aib[1000005];
int v[1000005];

void update(int poz, int val)
{
    for(int i = poz; i <= 1000000; i += (i & (-i)))
        aib[i] += val;
    return;
}

int query(int poz)
{
    int sum = 0;
    for(int i = poz; i >= 1; i -= (i & (-i)))
        sum += aib[i];
    return sum;
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0), cout.tie(0);
   
    cin>>n;
    for(int i =1 ; i <= n; i++)
        cin>>v[i];;

    int rez = 1, prev = 0;
    vector<int> secv;
    for(int i = 1; i <= n; i++)
    {
        if(v[i] < v[i - 1] || query(v[i] - 1) - query(prev) > 0)
        {
            for(auto it : secv)
                update(it, 1);
            secv.clear();
            secv.push_back(v[i]);
            prev = v[i];
            rez++;
        }
        else
        {
            secv.push_back(v[i]);
        }
    }

    cout<<rez;

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...