Submission #412855

#TimeUsernameProblemLanguageResultExecution timeMemory
412855aryan12Global Warming (NOI13_gw)C++17
40 / 40
290 ms17612 KiB
#include <bits/stdc++.h>
using namespace std;

void Solve() {
	int n;
	cin >> n;
	vector<pair<int, int> > a(n + 1);
	vector<bool> isTaken(n + 3);
	for(int i = 1; i <= n; i++) {
		cin >> a[i].first;
		isTaken[i] = false;
		a[i].second = i;
	}
	sort(a.begin() + 1, a.end());
	isTaken[0] = true;
	isTaken[n + 1] = true;
	int ans = 0, curr = 0;
	for(int i = 1; i <= n; i++) {
		int curVal = a[i].first;
		for(int j = i; j <= n; j++) {
			if(a[j].first != curVal)
				break;
			i = j;
			isTaken[a[j].second] = true;
			if(!isTaken[a[j].second - 1] && !isTaken[a[j].second + 1]) {
				curr++;
			}
			else if(isTaken[a[j].second - 1] && isTaken[a[j].second + 1]) {
				curr--;
			}
		}
		ans = max(ans, curr);
	}
	cout << ans + 1 << "\n";
}

int32_t main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	int t = 1;
	//cin >> t;
	while(t--) {
		Solve();
	}
	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...
#Verdict Execution timeMemoryGrader output
Fetching results...