#include "triples.h"
#include<bits/stdc++.h>
#define pb push_back
using namespace std;
const int maxn = 2e5 + 10;
int n;
long long a[maxn];
long long count_triples(std::vector<int> H)
{
n = H.size();
for (int i = 1; i <= n; ++ i)
{
a[i] = H[i-1];
}
long long ans = 0;
for (int j = 3; j <= n; ++ j)
{
long long dist = a[j];
int i = j - dist;
if(!(i >= 1 && i <= n))continue;
int mdist = a[i];
if(mdist > (dist - mdist))continue;
int pos1 = i + mdist, is = 0;
if(pos1 < j && a[pos1] == j - pos1)
{
ans ++;
is = 1;
}
pos1 = j - mdist;
if(pos1 == i + mdist && is)continue;
if(pos1 > i && a[pos1] == pos1 - i)ans ++;
}
return ans;
for (int i = 1; i <= n; ++ i)
{
for (int j = i + 2; j <= n; ++ j)
{
int dist = j - i;
if(a[i] == dist || a[j] == dist)
{
int other = a[i] + a[j] - dist;
int pos = i + other;
int is = 0;
if(i < pos && pos < j && a[pos] == j - pos)
{
is = 1;
ans ++;
}
pos = j - other;
if(is && pos == i + other)continue;
if(i < pos && pos < j && a[pos] == pos - i)ans ++;
}
else
{
if(a[i] + a[j] == dist)
{
int pos = i + a[i];
int is = 0;
if(i < pos && pos < j && a[pos] == dist)
{
is = 1;
ans ++;
}
pos = j - a[i];
if(is && pos == i + a[i])continue;
if(i < pos && pos < j && a[pos] == dist)ans ++;
}
}
}
}
return ans;
}
std::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... |