Submission #251667

#TimeUsernameProblemLanguageResultExecution timeMemory
251667VEGAnnBaloni (COCI15_baloni)C++14
0 / 100
2088 ms48888 KiB
#include <bits/stdc++.h> #define sz(x) ((int)x.size()) #define i2 array<int,2> using namespace std; typedef long long ll; const int N = 1000100; const int C = 22; const int md = 10007; set<i2> st; int n, a[N], ans, nt[N], pos[N]; int mult(int x, int y) { return (x * y) % md; } void SUM(int &x, int y){ x += y; if (x >= md) x -= md; } int main() { #ifdef _LOCAL freopen("in.txt","r",stdin); // freopen("output.txt","w",stdout); #else // freopen("mining.in","r",stdin); freopen("mining.out","w",stdout); ios_base::sync_with_stdio(0); cin.tie(0); #endif cin >> n; for (int i = 1; i <= n; i++) cin >> a[i]; for (int i = n; i > 0; i--){ nt[i] = pos[a[i] - 1]; pos[a[i]] = i; st.insert({a[i], -i}); } while (sz(st) > 0){ ans++; i2 cr = (*(--st.end())); st.erase(cr); int ps = nt[-cr[1]]; while (ps != 0){ st.erase({a[ps], -ps}); ps = nt[ps]; } } cout << ans; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...