Submission #35197

#TimeUsernameProblemLanguageResultExecution timeMemory
35197ulnaMoney (IZhO17_money)C++11
100 / 100
189 ms9828 KiB
#include <bits/stdc++.h> using namespace std; // why am I so weak int n; int a[1000055]; int dat[1000055]; inline void read(int &x) { x = 0; char ch = 0; while (ch < '0' || ch > '9') ch = getchar(); while (ch >= '0' && ch <= '9') { x = x * 10 + (ch - '0'); ch = getchar(); } } void add(int id) { int val = id; while (id < (int)1e6) { dat[id] = max(dat[id], val); id |= (id + 1); } } int get(int id) { int res = -1; while (id >= 0) { res = max(res, dat[id]); id = (id & (id + 1)) - 1; } return res; } int main() { scanf("%d", &n); for (int i = 0; i < n; i++) { read(a[i]); a[i] = (int)1e6 - a[i]; } int lb = 0, ub = (int)1e7; int res = 1; for (int i = 0; i < n; i++) { if (lb <= a[i] && a[i] <= ub) { add(a[i]); ub = a[i]; continue; } ub = a[i]; lb = get(a[i] - 1); res++; add(a[i]); } printf("%d\n", res); return 0; }

Compilation message (stderr)

money.cpp: In function 'int main()':
money.cpp:40:17: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &n);
                 ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...