Submission #873167

#TimeUsernameProblemLanguageResultExecution timeMemory
873167tvladm2009Baloni (COCI15_baloni)C++17
0 / 100
2079 ms97104 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int N = 1e6 + 7; int n; int a[N]; bool vis[N]; set<int> s[N]; int h = 0; int get_nxt(int pos, int val) { pos++; auto it = s[val].lower_bound(pos); if (it == s[val].end()) { return -1; } return *it; } void dfs(int i) { vis[i] = 1; --h; int j = get_nxt(i, h); if (h == 0) { return; } if (j == -1) { j = i; --h; } if (h == 0) { return; } dfs(j); } int main() { ios::sync_with_stdio(false); cin.tie(0); cin >> n; for (int i = 1; i <= n; ++i) { cin >> a[i]; s[a[i]].insert(i); } int ans = 0; for (int i = 1; i <= n; ++i) { if (!vis[i]) { h = a[i]; dfs(i); ++ans; } } cout << ans << "\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...