Submission #894636

#TimeUsernameProblemLanguageResultExecution timeMemory
894636IWKRGlobal Warming (NOI13_gw)C++17
40 / 40
180 ms21848 KiB
#include <bits/stdc++.h> using namespace std; #define DEMON_SLAYER ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); int main() { DEMON_SLAYER int n; cin >> n; int prev = -1; vector<pair<int, int>> v; int cur = 0; int arr[n]; for (int i = 0; i < n; i++) { int a; cin >> a; if (prev == a) { continue; } v.push_back({a, cur}); prev = a; arr[cur] = a; cur++; } sort(v.begin(), v.end(), greater<pair<int, int>>()); if (v.size() == 1) { cout << 1; return 0; } int ans = 0; int actans = 0; for (int i = 0; i < cur; i++) { pair<int, int> c = v[i]; if (c.second == cur - 1) { if (arr[c.second - 1] <= c.first) { ans++; } } else if (c.second == 0) { if(arr[c.second + 1] < c.first) { ans++; } } else { if (arr[c.second - 1] > c.first && arr[c.second + 1] > c.first) { ans--; } else if (arr[c.second - 1] < c.first && arr[c.second + 1] < c.first) { ans++; } } if (i == cur - 1 || v[i].first != v[i + 1].first) { actans = max(actans, ans); } } cout << actans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...