Submission #156184

#TimeUsernameProblemLanguageResultExecution timeMemory
156184andrewMoney (IZhO17_money)C++17
0 / 100
2 ms376 KiB
#include <bits/stdc++.h> //#pragma GCC optimize("-O3") //#pragma GCC optimize("Ofast") //#pragma GCC optimize("unroll-loops") #define fi first #define se second #define p_b push_back #define pll pair<ll,ll> #define pii pair<int,int> #define m_p make_pair #define all(x) x.begin(),x.end() #define sset ordered_set #define sqr(x) (x)*(x) #define pw(x) (1ll << x) using namespace std; typedef long long ll; typedef long double ld; const ll MAXN = 1123456; const ll N = 1e6 + 2; const ll inf = 3e18; mt19937_64 rnd(chrono::system_clock::now().time_since_epoch().count()); template <typename T> void vout(T s){cout << s << endl;exit(0);} ll t[MAXN], poz[MAXN]; bool Beg[MAXN], End[MAXN]; void u(ll pos, ll val){for(; pos <= N; pos += pos & -pos)t[pos] += val;} ll f(ll pos){ll res = 0; for(; pos > 0; pos -= pos & -pos)res += t[pos]; return res;} int main(){ ios_base :: sync_with_stdio(0); cin.tie(0); set <ll> s; ll n; cin >> n; vector <ll> a(n + 1), pozit(n + 1), is_begin(n + 1); for(int i = 1; i <= n; i++){ cin >> a[i]; } ll ans = 0; for(int i = 1; i <= n;){ ans++; ll j = i + 1; while(j <= n && a[j - 1] <= a[j]){ if(f(a[j] - 1) - f(a[i]))break; j++; } for(int k = i; k < j; k++)u(a[k], 1); i = j; } cout << ans << "\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...