#include "triples.h"
#include <bits/stdc++.h>
using namespace std;
long long count_triples(vector<int> H) {
int N = H.size();
vector<vector<int>> locs(N, vector<int>());
for (int i = 0; i < N; i++) {
locs[H[i]].push_back(i);
}
int ans = 0;
for (int i = 0; i < N; i++) {
for (int j = i + 1; j < N; j++) {
int dist = j - i;
if (H[i] != dist && H[j] != dist) {
if (i - H[i] >= 0 && i - H[i] != j) {
int k = i - H[i];
if (H[k] == dist && abs(j - k) == H[j]) ans++;
}
if (i - H[j] >= 0 && i - H[j] != j && H[i] != H[j]) {
int k = i - H[j];
if (H[k] == dist && abs(j - k) == H[i]) ans++;
}
if (i + H[i] < N && i + H[i] != j) {
int k = i + H[i];
if (H[k] == dist && abs(j - k) == H[j]) ans++;
}
if (i + H[j] < N && i + H[j] != j && H[i] != H[j]) {
int k = i + H[j];
if (H[k] == dist && abs(j - k) == H[i]) ans++;
}
}
else if (H[i] == dist) {
if (i - H[j] >= 0 && i - H[j] != j) {
int k = i - H[j];
if (H[k] == abs(j - k)) ans++;
}
if (j - H[j] >= 0 && j - H[j] != i) {
int k = j - H[j];
if (H[k] == abs(i - k)) ans++;
}
if (i + H[j] < N && i + H[j] != j && j - H[j] != i + H[j]) {
int k = i + H[j];
if (H[k] == abs(j - k)) ans++;
}
if (j + H[j] < N && j + H[j] != i && i - H[j] != j + H[j]) {
int k = j + H[j];
if (H[k] == abs(i - k)) ans++;
}
}
else {
if (i - H[i] >= 0 && i - H[i] != j) {
int k = i - H[i];
if (H[k] == abs(j - k)) ans++;
}
if (j - H[i] >= 0 && j - H[i] != i) {
int k = j - H[i];
if (H[k] == abs(i - k)) ans++;
}
if (i + H[i] < N && i + H[i] != j && j - H[j] != i + H[j]) {
int k = i + H[i];
if (H[k] == abs(j - k)) ans++;
}
if (j + H[i] < N && j + H[i] != i && i - H[i] != j + H[j]) {
int k = j + H[i];
if (H[k] == abs(i - k)) ans++;
}
}
}
}
return ans / 3;
}
vector<int> construct_range(int M, int K) {
return {1, 1, 1};
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |