#include <bits/stdc++.h>
using namespace std;
// #define LOCAL
// Part I
const long long CON = 100;
long long chash(int i, int j, int k) {
array<int,3> coords{i,j,k};
sort(coords.begin(), coords.end());
long long h = coords[0];
h += CON * coords[1];
h += CON * CON * coords[2];
return h;
}
bool checkTriple(int i, int j, int k, vector<int>& h) {
const int n = h.size();
array<int,3> a{abs(i-j),abs(j-k),abs(k-i)};
array<int,3> b{h[i], h[j], h[k]};
sort(a.begin(), a.end());
sort(b.begin(), b.end());
return a == b;
}
long long count_triples(vector<int> H) {
const int n = H.size();
long long cnt = 0;
unordered_set<long long> cs;
for (int i = 0; i < n; ++i) {
for (int j = i+1; j < n; ++j) {
int hi = H[i];
int hj = H[j];
for (auto& k : vector<int>{i-hi,i+hi,i-hj,i+hj,j-hi,j+hi,j-hj,j+hj}) {
if (checkTriple(i,j,k,H)) {
cs.insert(chash(i,j,k));
break;
}
}
}
}
return cs.size();
}
std::vector<int> construct_range(int M, int K) {
return {};
}
#ifdef LOCAL
int32_t main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
vector<int> a(n);
for (auto& e : a) cin >> e;
cout << count_triples(a) << '\n';
return 0;
}
#endif
# | 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... |