Submission #1284115

#TimeUsernameProblemLanguageResultExecution timeMemory
1284115Ekber_EkberMoney (IZhO17_money)C++20
0 / 100
4 ms8256 KiB
#include <bits/stdc++.h> #define GOOD_LUCK ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); #define int long long #define endl "\n" #define ff first #define ss second #define pb push_back #define all(v) v.begin(), v.end() using namespace std; constexpr int MAX = 2e+5 + 1, INF = 2e+16, MOD = 1e+9 + 7, K = 31; struct BIT{ int n; vector <int> t; void init(int n1) { n = n1; t.assign(n+1, 0); } int get(int l, int r) { if (l > r) return 0; if (l != 1) return get(1, r) - get(1, l-1); int res=0; while (r >= 1) { res += t[r]; r -= (r & (-r)); } return res; } void upd(int i, int x) { while (i <= n) { t[i] += x; i += (i & (-i)); } } }; void _() { int n; cin >> n; vector <int> v(n); for (int &i : v) cin >> i; BIT t; t.init(1000005); vector <int> dp(n, 0); dp[0] = 1; for (int i = 1; i < n; i++) { dp[i] = dp[i-1] + 1; if (v[i] >= v[i-1] && t.get(v[i-1] + 1, v[i] - 1) == 0) { dp[i] = dp[i-1]; } t.upd(v[i], 1); } // for (int &i : dp) cerr << i << ' '; cout << dp[n-1]; } signed main() { GOOD_LUCK int tests=1; // cin >> tests; for (int i=1; i <= tests; i++) { _(); // cout << endl; } 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...