#include "triples.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
long long count_triples(std::vector<int> a) {
ll ans=0;
int n=a.size();
for(int i=0;i<n;i++){
if(i+a[i]<n){
int r=i+a[i];
if(i-a[r]>=0){
int l=i-a[r];
ans+=a[l]==r-l;
}
if(r-a[r]<i&&r-a[r]>=0){
int l=r-a[r];
ans+=a[l]==i-l;
}
}
if(i-a[i]>=0){
int l=i-a[i];
if(i+a[l]<n){
int r=i+a[l];
ans+=a[r]==r-l;
}
if(l+a[l]>i&&l+a[l]<n){
int r=l+a[l];
ans+=a[r]==r-i;
}
}
for(int j=max(1,i+a[i]-n+1);j<min(a[i],i+1);j++){
ans+=a[i-j]==j&&a[i+a[i]-j]==a[i]-j||a[i-j]==a[i]-j&&a[i+a[i]-j]==j;
}
}
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... |