/ SeriousOJ /

Record Detail

Wrong Answer


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Wrong Answer 1ms 532.0 KiB
#3 Wrong Answer 1ms 532.0 KiB
#4 Wrong Answer 102ms 4.957 MiB
#5 Wrong Answer 371ms 34.02 MiB
#6 Wrong Answer 176ms 17.816 MiB
#7 Wrong Answer 44ms 788.0 KiB
#8 Wrong Answer 106ms 17.77 MiB
#9 Wrong Answer 159ms 17.52 MiB
#10 Wrong Answer 212ms 18.02 MiB
#11 Wrong Answer 16ms 856.0 KiB
#12 Wrong Answer 31ms 532.0 KiB
#13 Wrong Answer 1ms 532.0 KiB

Code

// PIPRA ||  HABIB
#include<bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>

using namespace __gnu_pbds;
using namespace std;

#define int        long long int
#define pb         push_back
#define all(x)     x.begin(),x.end()
#define allr(x)    x.rbegin(),x.rend()
#define ii         pair<int,int>
#define endl       "\n"

template<typename T>
ostream& operator<<(ostream &os, const vector<T> &v) {
    os << '{';
    for (const auto &x : v) os << " " << x;
        return os << '}';
}
using orderedTree = tree<int, null_type, less_equal<int>, 
rb_tree_tag, tree_order_statistics_node_update>;

void pipra(){
    int n;  cin >> n;
    vector<int> a(n);
    for(auto &e: a){
        cin >> e;
    }

    orderedTree oset, oset1;
    vector<int> left_min(n+2), left_max(n+2);
    vector<int> right_min(n+2), right_max(n+2);

    for(int i=1 ; i<=n ; i++){
        int e = a[i-1];
        int mn = oset.order_of_key(e);
        int mx = oset.size() - oset.order_of_key(e+1);
        left_min[i] = mn;
        left_max[i] = mx;
        oset.insert(e);
    }

    for(int i=n ; i>0 ; i--){
        int e = a[i-1];
        int mn = oset1.order_of_key(e);
        int mx = oset1.size() - oset1.order_of_key(e);
        right_min[i] = mn;
        right_max[i] = mx;
        oset1.insert(e);
    }

    vector<int> res(n+1);
    for(int i=1 ; i<=n ; i++){
        res[i] = 0;

        // cout << left_min[i-1] << 

        res[i] += min(left_min[i] , right_max[i]);
        res[i] += min(right_min[i] , left_max[i]);
    }

    int q;  cin >> q;
    while(q--){
        int i;  cin >> i;
        cout << res[i] << endl;
    }
}

int32_t main(){
    // HABIB
    ios_base::sync_with_stdio(false); 
    cin.tie(NULL); cout.tie(NULL);

    int t;    cin>>t;
    while(t--) {
        pipra();
    }
    return 0 ;
}

Information

Submit By
Type
Submission
Problem
P1079 Roy and Query (Easy Version)
Contest
Brain Booster #6
Language
C++17 (G++ 13.2.0)
Submit At
2024-10-03 17:31:03
Judged At
2024-10-03 17:31:03
Judged By
Score
4
Total Time
371ms
Peak Memory
34.02 MiB