/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Accepted 1ms 532.0 KiB
#3 Accepted 1ms 484.0 KiB
#4 Accepted 1ms 348.0 KiB
#5 Accepted 1ms 532.0 KiB
#6 Accepted 1ms 532.0 KiB
#7 Accepted 1ms 536.0 KiB
#8 Accepted 1ms 532.0 KiB
#9 Accepted 1ms 324.0 KiB
#10 Accepted 1ms 532.0 KiB
#11 Accepted 1ms 580.0 KiB
#12 Accepted 1ms 532.0 KiB
#13 Accepted 1ms 532.0 KiB
#14 Accepted 1ms 496.0 KiB
#15 Accepted 1ms 360.0 KiB
#16 Accepted 1ms 320.0 KiB
#17 Accepted 1ms 320.0 KiB
#18 Accepted 1ms 532.0 KiB
#19 Accepted 1ms 532.0 KiB
#20 Accepted 1ms 532.0 KiB
#21 Accepted 1ms 328.0 KiB
#22 Accepted 1ms 536.0 KiB
#23 Accepted 1ms 344.0 KiB
#24 Accepted 1ms 404.0 KiB
#25 Accepted 1ms 488.0 KiB
#26 Accepted 1ms 580.0 KiB
#27 Accepted 1ms 532.0 KiB
#28 Accepted 1ms 532.0 KiB
#29 Accepted 1ms 532.0 KiB
#30 Accepted 1ms 532.0 KiB
#31 Accepted 1ms 532.0 KiB
#32 Accepted 1ms 532.0 KiB
#33 Accepted 1ms 388.0 KiB
#34 Accepted 1ms 488.0 KiB
#35 Accepted 1ms 536.0 KiB
#36 Accepted 1ms 576.0 KiB
#37 Accepted 1ms 488.0 KiB
#38 Accepted 1ms 352.0 KiB
#39 Accepted 1ms 340.0 KiB
#40 Accepted 1ms 532.0 KiB
#41 Accepted 2ms 516.0 KiB
#42 Accepted 2ms 412.0 KiB
#43 Accepted 2ms 532.0 KiB
#44 Accepted 2ms 492.0 KiB
#45 Accepted 2ms 584.0 KiB
#46 Accepted 2ms 532.0 KiB
#47 Accepted 2ms 652.0 KiB
#48 Accepted 2ms 604.0 KiB
#49 Accepted 2ms 532.0 KiB
#50 Accepted 2ms 580.0 KiB
#51 Accepted 2ms 680.0 KiB
#52 Accepted 2ms 532.0 KiB
#53 Accepted 2ms 536.0 KiB
#54 Accepted 2ms 596.0 KiB
#55 Accepted 2ms 596.0 KiB
#56 Accepted 2ms 476.0 KiB
#57 Accepted 2ms 532.0 KiB
#58 Accepted 2ms 532.0 KiB
#59 Accepted 2ms 532.0 KiB
#60 Accepted 2ms 644.0 KiB
#61 Accepted 9ms 1.195 MiB
#62 Accepted 4ms 788.0 KiB
#63 Accepted 6ms 788.0 KiB
#64 Accepted 12ms 1.336 MiB
#65 Accepted 12ms 1.309 MiB
#66 Accepted 7ms 788.0 KiB
#67 Accepted 7ms 788.0 KiB
#68 Accepted 9ms 788.0 KiB
#69 Accepted 10ms 828.0 KiB
#70 Accepted 11ms 1020.0 KiB
#71 Accepted 31ms 1.52 MiB
#72 Accepted 7ms 1.312 MiB
#73 Accepted 8ms 1.27 MiB
#74 Accepted 20ms 1.789 MiB
#75 Accepted 21ms 1.68 MiB
#76 Accepted 12ms 1.316 MiB
#77 Accepted 9ms 1.328 MiB
#78 Accepted 10ms 1.32 MiB
#79 Accepted 12ms 1.09 MiB
#80 Accepted 13ms 1.074 MiB
#81 Accepted 34ms 1.973 MiB
#82 Accepted 9ms 1.387 MiB
#83 Accepted 10ms 1.27 MiB
#84 Accepted 30ms 2.25 MiB
#85 Accepted 22ms 2.137 MiB
#86 Accepted 10ms 1.27 MiB
#87 Accepted 10ms 1.27 MiB
#88 Accepted 11ms 1.262 MiB
#89 Accepted 10ms 1.27 MiB
#90 Accepted 30ms 1.504 MiB
#91 Accepted 265ms 9.855 MiB
#92 Accepted 91ms 8.02 MiB
#93 Accepted 116ms 8.02 MiB
#94 Accepted 209ms 14.316 MiB
#95 Accepted 198ms 13.406 MiB
#96 Accepted 108ms 8.172 MiB
#97 Accepted 94ms 8.082 MiB
#98 Accepted 106ms 8.02 MiB
#99 Accepted 92ms 7.77 MiB
#100 Accepted 106ms 8.02 MiB

Code

#include<bits/stdc++.h>
#define ll                  long long
#define nl                  '\n'
#define F                   first
#define S                   second
#define all(a)              (a.begin()),(a.end())
#define UNIQUE(X)           (X).erase(unique(all(X)),(X).end())
#define SORT_UNIQUE(c)      (sort(c.begin(),c.end()), c.resize(distance(c.begin(),unique(c.begin(),c.end()))))
#define ms(a,b)             memset(a, b, sizeof(a))
#define Input               freopen("in.txt","r",stdin)
#define Output              freopen("out.txt","w",stdout)
#define MOD                 1000000007
using namespace std;

#include <ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;
template<typename T> using orderset = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;

const int N = 2e5 + 5;
ll a[N], b[N];

void Solve(int t)
{
	ll n;
	cin >> n;
	orderset<pair<ll, ll>> s;
	map<ll, ll> m;
	for (int i = 1; i <= n; i++) {
		cin >> a[i];
		if (a[i] == 0)
			b[i]++;
		else if (s.size() >= a[i]) {
			pair<ll, ll> x = *s.find_by_order(a[i] - 1);
			if (x.F <= a[i])
				b[i]++;
		}
		m[a[i]]++;
		s.insert({a[i], m[a[i]]});
	}
	s.clear();
	m.clear();
	for (int i = n; i >= 1; i--)
	{
		if (a[i] == 0)
			b[i]++;
		else if (s.size() >= a[i]) {
			ll j = s.size() - a[i];
			pair<ll, ll> x = *s.find_by_order(j);
			if (x.F >= a[i])
				b[i]++;
		}
		m[a[i]]++;
		s.insert({a[i], m[a[i]]});
	}
	ll ans = 0;
	for (int i = 1; i <= n; i++) {
		// cout << b[i] << ' ';
		if (b[i] > 0)
			ans++;
	}
	// cout << endl;
	cout << ans << endl;

}

int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	int t, T = 1;
	// cin >> T;
	for (t = 1; t <= T; t++)
		Solve(t);
	return 0;
}

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 16:41:47
Judged At
2025-04-06 16:41:47
Judged By
Score
100
Total Time
265ms
Peak Memory
14.316 MiB