Submission #1115326

#TimeUsernameProblemLanguageResultExecution timeMemory
1115326vjudge1Money (IZhO17_money)C++17
0 / 100
1 ms4604 KiB
#include "bits/stdc++.h" using namespace std; const int mxN = 1000006; int N; struct fwtree { int ar[mxN]; void add(int i, int x) { for (++ i; i < mxN; i += i & -i) { ar[i] += x; } } int qry(int i) { int r = 0; for (++ i; i; i -= i & -i) { r += ar[i]; } return r; } int qry(int i, int j) { return qry(j) - qry(i - 1); } } fw; int a[mxN]; void solve() { cin >> N; for (int i = 0; i < N; i ++) { cin >> a[i]; } int ans = 0; for (int i = 0; i < N; i ++) { int d = a[i]; int c = i; fw.add(d, 1); for (int j = i + 1; j < N; j ++) { if (a[j - 1] < a[j] && j - c == fw.qry(d, a[j])) { fw.add(a[j], 1); i = j; } else { break; } } ans ++; } cout << ans << endl; } int main() { solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...