#include "triples.h"
#include <bits/stdc++.h>
using namespace std;
int check(vector<int> a,vector<int> b){
sort(a.begin(), a.end());
sort(b.begin(), b.end());
for(int i = 0;i < 3;i++){
if(a[i] != b[i])return 0;
}
return 1;
}
//bool good = check({abs(a-b),abs(a-c),abs(b-c)},{v[a],v[b],v[c]});
long long count_triples(vector<int> v) {
long long res = 0;
int n = v.size();
for(int a = n-1;a >= 0;a--){
int b = a - v[a];
if(b < 0)continue;
int c = b + v[b];
int c2 = a - v[b];
if(a != c){
res += check({abs(a-b),abs(a-c),abs(b-c)},{v[a],v[b],v[c]});
}
if(c2 != c && c2 != b){
c = c2;
res += check({abs(a-b),abs(a-c),abs(b-c)},{v[a],v[b],v[c]});
}
}
return res;
}
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... |