#include "triples.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pii pair<int,int>
#define pb push_back
long long count_triples(std::vector<int> a) {
    ll ans=0;
    int n=a.size();
    for(int i=0;i<n;i++){
        vector<pii> v;
        if(i+a[i]<n){
            int r=i+a[i];
            if(i-a[r]>=0){
                int l=i-a[r];
                if(a[l]==r-l)v.pb({l,r});
            }
            if(r-a[r]<i&&r-a[r]>=0){
                int l=r-a[r];
                if(a[l]==i-l)v.pb({l,r});
            }
        }
        if(i-a[i]>=0){
            int l=i-a[i];
            if(i+a[l]<n){
                int r=i+a[l];
                if(a[r]==r-l)v.pb({l,r});
            }
            if(l+a[l]>i&&l+a[l]<n){
                int r=l+a[l];
                if(a[r]==r-i)v.pb({l,r});
            }
        }
        sort(v.begin(),v.end());
        v.erase(unique(v.begin(),v.end()),v.end());
        ans+=v.size();
        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;
        }
    }
    // for(int i=0;i<n;i++){
    //     for(int j=i+1;j<n;j++){
    //         for(int k=j+1;k<n;k++){
    //             multiset<int> s1={a[i],a[j],a[k]},s2={j-i,k-i,k-j};
    //             ans+=s1==s2;
    //             if(s1==s2)cout<<i<<' '<<j<<' '<<k<<'\n';
    //         }
    //     }
    // }
    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... |