Submission #36447

#TimeUsernameProblemLanguageResultExecution timeMemory
36447szawinisMoney (IZhO17_money)C++14
45 / 100
1500 ms56960 KiB
#include <bits/stdc++.h> using namespace std; const int MAX = (1e6)+1; int n, ans, a[MAX]; vector<pair<int,int> > segs; set<int> st; int main() { scanf("%d",&n); int curr = 0; for(int i = 0; i < n; i++) { scanf("%d",a+i); if(i && a[i] < a[i-1]) { segs.emplace_back(curr, i-1); curr = i; } } segs.emplace_back(curr, n-1); for(auto p: segs) { int l, r; tie(l, r) = p; int mn = a[l], mx = a[l]; curr = l; for(int i = l; i <= r; i++) { mn = min(a[i], mn); mx = max(a[i], mx); auto itlf = st.upper_bound(mn); auto itrg = st.lower_bound(mx); if(mn != mx && itlf != itrg) { for(int j = curr; j < i; j++) st.insert(a[j]); ++ans; mn = a[i]; mx = a[i]; curr = i; } } for(int j = curr; j <= r; j++) st.insert(a[j]); ++ans; } printf("%d", ans); }

Compilation message (stderr)

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