/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 540.0 KiB
#2 Accepted 1ms 540.0 KiB
#3 Accepted 1ms 540.0 KiB
#4 Accepted 3ms 540.0 KiB
#5 Accepted 1ms 540.0 KiB
#6 Accepted 1ms 540.0 KiB
#7 Accepted 2ms 560.0 KiB
#8 Accepted 1ms 540.0 KiB
#9 Accepted 1ms 540.0 KiB
#10 Accepted 1ms 364.0 KiB
#11 Accepted 1ms 540.0 KiB
#12 Accepted 2ms 540.0 KiB
#13 Accepted 1ms 332.0 KiB
#14 Accepted 1ms 580.0 KiB
#15 Accepted 1ms 540.0 KiB
#16 Accepted 1ms 540.0 KiB
#17 Accepted 1ms 540.0 KiB
#18 Accepted 1ms 540.0 KiB
#19 Accepted 1ms 540.0 KiB
#20 Accepted 1ms 540.0 KiB
#21 Accepted 1ms 332.0 KiB
#22 Accepted 2ms 540.0 KiB
#23 Accepted 1ms 744.0 KiB
#24 Accepted 1ms 540.0 KiB
#25 Accepted 1ms 540.0 KiB
#26 Accepted 1ms 540.0 KiB
#27 Accepted 1ms 540.0 KiB
#28 Accepted 1ms 540.0 KiB
#29 Accepted 1ms 540.0 KiB
#30 Accepted 1ms 328.0 KiB
#31 Accepted 1ms 540.0 KiB
#32 Accepted 1ms 540.0 KiB
#33 Accepted 1ms 540.0 KiB
#34 Accepted 1ms 560.0 KiB
#35 Accepted 1ms 540.0 KiB
#36 Accepted 1ms 332.0 KiB
#37 Accepted 1ms 540.0 KiB
#38 Accepted 1ms 612.0 KiB
#39 Accepted 1ms 328.0 KiB
#40 Accepted 1ms 540.0 KiB
#41 Accepted 1ms 584.0 KiB
#42 Accepted 2ms 816.0 KiB
#43 Accepted 2ms 708.0 KiB
#44 Accepted 2ms 796.0 KiB
#45 Accepted 2ms 540.0 KiB
#46 Accepted 2ms 540.0 KiB
#47 Accepted 1ms 772.0 KiB
#48 Accepted 2ms 588.0 KiB
#49 Accepted 1ms 584.0 KiB
#50 Accepted 1ms 540.0 KiB
#51 Accepted 1ms 592.0 KiB
#52 Accepted 1ms 772.0 KiB
#53 Accepted 1ms 584.0 KiB
#54 Accepted 1ms 540.0 KiB
#55 Accepted 1ms 540.0 KiB
#56 Accepted 1ms 540.0 KiB
#57 Accepted 1ms 540.0 KiB
#58 Accepted 1ms 540.0 KiB
#59 Accepted 1ms 540.0 KiB
#60 Accepted 1ms 624.0 KiB
#61 Accepted 2ms 840.0 KiB
#62 Accepted 2ms 540.0 KiB
#63 Accepted 2ms 796.0 KiB
#64 Accepted 2ms 540.0 KiB
#65 Accepted 2ms 540.0 KiB
#66 Accepted 2ms 844.0 KiB
#67 Accepted 2ms 840.0 KiB
#68 Accepted 2ms 540.0 KiB
#69 Accepted 2ms 584.0 KiB
#70 Accepted 2ms 540.0 KiB
#71 Accepted 3ms 1.074 MiB
#72 Accepted 3ms 844.0 KiB
#73 Accepted 3ms 796.0 KiB
#74 Accepted 3ms 796.0 KiB
#75 Accepted 3ms 1.027 MiB
#76 Accepted 3ms 1.074 MiB
#77 Accepted 3ms 1.027 MiB
#78 Accepted 3ms 1.027 MiB
#79 Accepted 2ms 1.027 MiB
#80 Accepted 2ms 796.0 KiB
#81 Accepted 3ms 1.074 MiB
#82 Accepted 3ms 1.027 MiB
#83 Accepted 3ms 1.004 MiB
#84 Accepted 3ms 1.027 MiB
#85 Accepted 3ms 796.0 KiB
#86 Accepted 3ms 796.0 KiB
#87 Accepted 3ms 844.0 KiB
#88 Accepted 3ms 884.0 KiB
#89 Accepted 3ms 796.0 KiB
#90 Accepted 3ms 796.0 KiB
#91 Accepted 18ms 3.52 MiB
#92 Accepted 15ms 3.707 MiB
#93 Accepted 15ms 3.52 MiB
#94 Accepted 15ms 3.523 MiB
#95 Accepted 15ms 3.773 MiB
#96 Accepted 14ms 3.602 MiB
#97 Accepted 14ms 3.52 MiB
#98 Accepted 15ms 3.602 MiB
#99 Accepted 14ms 3.602 MiB
#100 Accepted 13ms 3.609 MiB

Code

#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int MOD = 1000000007;
#define sz(x) (ll)(x).size()
#define rd ({ll x; cin >> x; x; })
#define dbg(x) cerr << "[" #x "]  " << (x) << "\n"
// #define errv(x) {cerr << "["#x"]  ["; for (const auto& ___ : (x)) cerr << ___ << ", "; cerr << "]\n";}
// #define errvn(x, n) {cerr << "["#x"]  ["; for (auto ___ = 0; ___ < (n); ++___) cerr << (x)[___] << ", "; cerr << "]\n";}
// #define cerr if(0)cerr
#define xx first
#define yy second
mt19937 rnd(std::chrono::high_resolution_clock::now().time_since_epoch().count());
/*_________________________________________________________________________________________________________________________*/
struct FenwickTree {
    vector<int> bit; // binary indexed tree
    int n;

    FenwickTree(int n)
    {
        this->n = n;
        bit.assign(n, 0);
    }

    FenwickTree(vector<int> const& a)
        : FenwickTree(a.size())
    {
        for (size_t i = 0; i < a.size(); i++)
            add(i, a[i]);
    }

    int sum(int r)
    {
        int ret = 0;
        for (; r >= 0; r = (r & (r + 1)) - 1)
            ret += bit[r];
        return ret;
    }

    int sum(int l, int r)
    {
        return sum(r) - sum(l - 1);
    }

    void add(int idx, int delta)
    {
        for (; idx < n; idx = idx | (idx + 1))
            bit[idx] += delta;
    }
};
void Solve()
{
    ll n;
    cin >> n;
    vector<ll> arr(n), lboro(n, 0), rchoto(n, 0);
    for (ll i = 0; i < n; i++) {
        cin >> arr[i];
    }
    FenwickTree l(n + 1), r(n + 1);
    for (ll i = n - 1; i >= 0; i--) {
        lboro[i] = l.sum(arr[i], n);
        l.add(arr[i], 1);
    }
    for (ll i = 0; i < n; i++) {
        rchoto[i] = r.sum(arr[i]);
        r.add(arr[i], 1);
    }
    ll ans = 0;
    for (ll i = 0; i < n; i++) {
        if (rchoto[i] >= arr[i] || lboro[i] >= arr[i])
            ans++;
        // cerr << lboro[i] << ' ' << rchoto[i] << ' ' << arr[i] << '\n';
    }
    cout << ans << '\n';
}

int32_t main()
{
    ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    int t = 1;
    // cin >> t;
    for (int i = 1; i <= t; i++) {
        // cout << "Case #" << i << ": "; // cout << "Case " << i << ": ";
        Solve();
    }
    return 0;
}
// Coded by Tahsin Arafat (@TahsinArafat)

Information

Submit By
Type
Submission
Problem
P1184 The Curious Kid and the Number Game
Contest
Brain Booster #9
Language
C++17 (G++ 13.2.0)
Submit At
2025-04-06 15:51:44
Judged At
2025-04-06 15:51:44
Judged By
Score
100
Total Time
18ms
Peak Memory
3.773 MiB