Submission #1147725

#TimeUsernameProblemLanguageResultExecution timeMemory
1147725loghsgsMountains (NOI20_mountains)C++20
0 / 100
2094 ms2888 KiB
#include<iostream>
using namespace std;

int N, num, val, loc, ret, ans;
long long H[300000];
bool visit[300000];

int main() {
	cin >> N;
	for (int i = 0; i < N; i++) {
		cin >> H[i];
		visit[i] = false;
	}
	num = N;
	ans = 0;
	while (num >= 3) {
		val = -1;
		loc = -1;
		for (int i = 0; i < N; i++) {
			if (!visit[i] && H[i] > val) {
				val = H[i];
				loc = i;
			}
		}
		visit[loc] = true;
		ret = 0;
		for (int i = loc + 1; i < N; i++) {
			if (!visit[i] && H[i] < val) ret++;
		}
		int l = loc;
		for (int i = loc - 1; i >= 0; i--) {
			if (visit[i]) l--;
		}
		ans += l * ret;
		num--;
	}
	cout << ans;
	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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...