#include <bits/stdc++.h>
bool check(int a, int b, int c, int x, int y, int z) {
std::array<int, 3> p = {a, b, c};
std::array<int, 3> q = {x, y, z};
std::sort(p.begin(), p.end());
std::sort(q.begin(), q.end());
return p == q;
}
long long count_triples(std::vector<int> H) {
const int n = H.size();
long long ans = 0;
// case 1
for (int k = 0; k < n; ++k) {
int i = k - H[k];
if (i < 0 or i >= n) {
continue;
}
int j = H[i] + i;
if (j < 0 or j >= n or !(i < j and j < k)) {
continue;
}
ans += check(j - i, k - j, k - i, H[i], H[j], H[k]);
}
// case 2
for (int k = 0; k < n; ++k) {
int i = k - H[k];
if (i < 0 or i >= n) {
continue;
}
int j = k - H[i];
if (j < 0 or j >= n or !(i < j and j < k)) {
continue;
}
if (i != j - H[j]) {
continue;
}
if (H[j] == k - j or H[i] == j - i) {
continue;
}
ans += check(j - i, k - j, k - i, H[i], H[j], H[k]);
}
return ans;
}
std::vector<int> construct_range(int M, int K) {
return {8, 6, 7, 18, 3, 2, 9, 6, 11, 14, 3, 4, 1, 2, 1, 3, 4, 6, 5, 18};
}
# | 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... |