/ SeriousOJ /

Record Detail

Wrong Answer


  
# Status Time Cost Memory Cost
#1 Wrong Answer 1ms 332.0 KiB
#2 Wrong Answer 1ms 540.0 KiB

Code

#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;
using namespace std;
#define coutall(v)  for(auto &it: v) cout<<it<<' '; cout<<endl

template <typename T> using ordered_set = tree<T, null_type, less_equal <T>, rb_tree_tag, tree_order_statistics_node_update>;

vector<int> countGreaterRight(vector<int>& arr) {
    int n = arr.size();
    vector<int> res(n);
    ordered_set <int>os;
    for (int i = n - 1; i >= 0; i--) {
        res[i] = os.size() - os.order_of_key(arr[i]); // strictly greater
        os.insert(arr[i]);
    }
    return res;
}

vector<int> countSmallerLeft(vector<int>& arr) {
    int n = arr.size();
    vector<int> res(n);
    ordered_set <int>os;
    for (int i = 0; i < n; i++) {
        res[i] = os.order_of_key(arr[i] + 1); // strictly smaller
        os.insert(arr[i]);
    }
    return res;
}

int main() {
    int n;
    cin >> n;
    vector<int>v(n);
    for(int i = 0; i < n; i++)
    {
        cin >> v[i];
        assert(v[i] < n);
    }

    vector<int> greaterRight = countGreaterRight(v);
    vector<int> smallerLeft = countSmallerLeft(v);

    coutall(greaterRight);
    coutall(smallerLeft);
    int specialCount = 0;
    for (int i = 0; i < n; i++) {
        if (greaterRight[i] >= v[i] || smallerLeft[i] >= v[i])
        {
            specialCount++;
        }
    }

    cout << specialCount << endl;

    return 0;
}

Information

Submit By
Type
Submission
Problem
P1184 The Curious Kid and the Number Game
Language
C++17 (G++ 13.2.0)
Submit At
2025-03-22 19:32:28
Judged At
2025-03-22 19:32:28
Judged By
Score
0
Total Time
1ms
Peak Memory
540.0 KiB