Submission #979123

#TimeUsernameProblemLanguageResultExecution timeMemory
979123penguin133Baloni (COCI15_baloni)C++17
100 / 100
730 ms107604 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long
#define pi pair<int, int>
#define pii pair<int, pi>
#define fi first
#define se second
#ifdef _WIN32
#define getchar_unlocked _getchar_nolock
#endif
mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());

int n, H[1000005], used[1000005];
set <int> s[1000005];

void solve(){
	cin >> n;
	for(int i = 1; i <= n; i++){
		cin >> H[i];
		s[H[i]].insert(i);
	}
	int ptr = 1, cnt = 0;
	while(ptr <= n){
		cnt++;
		int cur = ptr, val = H[cur];
		used[cur] = 1;
		while(cur <= n){
			if(val == 1)break;
			auto it = s[val - 1].lower_bound(cur);
			if(it == s[val - 1].end())break;
			val--;
			int tmp = *it;
			s[val].erase(it);
			used[tmp] = 1;
			cur = tmp;
		}
		while(used[ptr])ptr++;
	}
	cout << cnt;
}

main(){
	ios::sync_with_stdio(0);cin.tie(0);
	int tc = 1;
	//cin >> tc;
	for(int tc1=1;tc1<=tc;tc1++){
		// cout << "Case #" << tc1 << ": ";
		solve();
	}
}

Compilation message (stderr)

baloni.cpp:43:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   43 | main(){
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...