Submission #377069

#TimeUsernameProblemLanguageResultExecution timeMemory
377069ijxjdjdMoney (IZhO17_money)C++14
45 / 100
1560 ms51432 KiB
#include <bits/stdc++.h> #define FR(i, N) for (int i = 0; i < int(N); i++) #define all(x) begin(x), end(x) using namespace std; using ll = long long; int main() { cin.tie(0); cin.sync_with_stdio(0); int N; map<int, int> left; cin >> N; vector<int> arr(N); FR(i, N) { cin >> arr[i]; left[arr[i]]++; } int lst = arr[N-1]; int ans = 1; bool ori = true; for (int i = N-2; i >= 0; i--) { left[arr[i+1]]--; bool gone = false; if (left[arr[i+1]] == 0) { left.erase(arr[i+1]); gone = true; } if (lst == arr[i]) { } else { auto it = left.lower_bound(lst); if (it != left.begin() && (*prev(it)).first == arr[i]) { if (!gone) { if (ori) { ori = false; } else { ans++; ori = true; } } else { ori = false; } } else { ans++; ori = true; } } lst = arr[i]; } 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...