#include "triples.h"
#include "bits/stdc++.h"
using namespace std;
bool is(vector<int> &h, int i, int j, int k)
{
if (j < i || k < i || k >= (int)h.size())
{
return 0;
}
vector<int> d = {abs(i - j), abs(j - k), abs(k - i)};
vector<int> c = {h[i], h[j], h[k]};
sort(d.begin(), d.end());
sort(c.begin(), c.end());
return (d == c);
}
long long count_triples(vector<int> h)
{
int cnt = 0;
for (int i = 0; i < (int)h.size(); ++i)
{
int j = i + h[i];
if (j < (int)h.size() && h[j] != h[i])
{
if (i + h[j] != j + h[i])
{
cnt += is(h, i, j, i + h[j]);
}
if (i + h[j] != j - h[j])
{
cnt += is(h, i, j, j - h[j]);
}
cnt += is(h, i, j, j + h[j]);
}
for (j = i + 1; j + h[i] < (int)h.size(); ++j)
{
cnt += is(h, i, j, j + h[i]);
}
}
return cnt;
}
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... |