Submission #1351167

#TimeUsernameProblemLanguageResultExecution timeMemory
1351167trideserTriple Peaks (IOI25_triples)C++20
8 / 100
2095 ms1960 KiB
#include "triples.h"
#include <bits/stdc++.h>
using namespace std;

bool check_triple(int a, int b, int c, int N, vector<int>& H) {
	if(a < 0 || a >= N || b < 0 || b >= N || c < 0 || c >= N) return false;
	vector<int> distances = {abs(a - b), abs(b - c), abs(c - a)};
	sort(distances.begin(), distances.end());
	vector<int> heights = {H[a], H[b], H[c]};
	sort(heights.begin(), heights.end());
	return distances == heights;
}

long long count_triples(vector<int> H) {
	int N = H.size();
	long long ret = 0;
	for(int i = 0; i < N; i++) {
		for(int j = min(i - H[i], 0); j < i - 1; j++) {
			for(int k = j + 1; k < i; k++) {
				if(check_triple(i, j, k, N, H)) ret++;
			}
		}
	}
	return ret;
}

vector<int> construct_range(int M, int K) {
	return {1, 1, 1};
}
#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...
#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...