/ SeriousOJ /

Record Detail

Compile Error

foo.cc:8:38: error: reference to 'priority_queue' is ambiguous
    8 | template<typename T> using minHeap = priority_queue<T, vector<T>, greater<T>>;
      |                                      ^~~~~~~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/c++/13/bits/extc++.h:75,
                 from foo.cc:2:
/usr/include/c++/13/ext/pb_ds/priority_queue.hpp:84:9: note: candidates are: 'template<class _Tv, class Cmp_Fn, class Tag, class _Alloc> class __gnu_pbds::priority_queue'
   84 |   class priority_queue
      |         ^~~~~~~~~~~~~~
In file included from /usr/include/c++/13/queue:66,
                 from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:157,
                 from foo.cc:1:
/usr/include/c++/13/bits/stl_queue.h:498:11: note:                 'template<class _Tp, class _Sequence, class _Compare> class std::priority_queue'
  498 |     class priority_queue
      |           ^~~~~~~~~~~~~~

Code

#include "bits/stdc++.h"
#include <bits/extc++.h>
using namespace std;
using namespace __gnu_pbds;
using ll = long long;
#define int ll
using pii = pair<int, int>;
template<typename T> using minHeap = priority_queue<T, vector<T>, greater<T>>;
#define all(x) x.begin(),x.end()
#define V vector
#define size(v) (int(v.size()))
const ll mxn= 2e5+3, inf= 1.5e18,mod= 1e9+7;//998244353;
// iwkms
//PBDS start
template <class T>
using order_set = tree<T, null_type, less_equal<T>, rb_tree_tag, tree_order_statistics_node_update>;
template <class K,class V>
using order_map = tree<K, V, less<K>, rb_tree_tag, tree_order_statistics_node_update>;
//less<T> for uniqe elements ,, less_equal<T> for duplicate
// s.order_of_key(x)=# of elements < x , s.find_by_order() = k-th largest element, 0 based
void solve() {
    int n;cin>>n;
    V<int> a(n),l(n),r(n);
    for (int& i:a)cin>>i;
    order_set<int> s;
    for (int i=0;i<n;i++) {
        l[i] =  s.order_of_key( a[i]+ 1) ;
        s.insert(a[i]);
    }
    s.clear();
    for (int i=n-1;i>=0;i--) {
        r[i] = size(s) - s.order_of_key(a[i]) ;
        s.insert(a[i]);
    }
    int cnt =0;
    for (int i=0;i<n;i++) {
        if (l[i] >= a[i] or a[i] <= r[i]) ++cnt;
    }
    // for (int& i:l)cout<<i<<' ';cout<<"\n";
    // for (int& i:r)cout<<i<<' ';cout<<"\n";
    cout<<cnt;
}
int32_t main() 
{
    cin.tie(0)->sync_with_stdio(0);
    // int t=1;cin>>t;while(t--)
        solve();
    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-04-07 07:42:47
Judged At
2025-04-07 07:42:48
Judged By
Score
0
Total Time
0ms
Peak Memory
0 Bytes