#include "triples.h"
#include <bits/stdc++.h>
using namespace std;
bool 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 false;
}
return true;
}
//(v[a] != v[b] && v[a] != v[c] && v[b] != v[c])
long long count_triples(vector<int> v) {
set<set<int>> s;
long long res = 0;
int n = v.size();
for(int a = 0;a < n;a++){
int b = a + v[a];
int c = b + v[b];
if(c < n && b < n){
bool good = check({abs(a-b),abs(a-c),abs(b-c)},{v[a],v[b],v[c]});
if(good && !s.count({a,b,c})){
s.insert({a,b,c});
res++;
}
}
c = b - v[b];
if(c >= 0 && c != a && b < n){
bool good = check({abs(a-b),abs(a-c),abs(b-c)},{v[a],v[b],v[c]});
if(good && !s.count({a,b,c})){
s.insert({a,b,c});
res++;
}
}
c = a + v[b];
if(c < n && c != b && b < n){
bool good = check({abs(a-b),abs(a-c),abs(b-c)},{v[a],v[b],v[c]});
if(good && !s.count({a,b,c})){
s.insert({a,b,c});
res++;
}
}
c = a- v[b];
if(c >= 0 && b < n){
bool good = check({abs(a-b),abs(a-c),abs(b-c)},{v[a],v[b],v[c]});
if(good && !s.count({a,b,c})){
s.insert({a,b,c});
res++;
}
}
for(b = 0;b < n-v[a];b++){
c = b + v[a];
if(c != a){
bool good = check({abs(a-b),abs(a-c),abs(b-c)},{v[a],v[b],v[c]});
if(good && !s.count({a,b,c})){
s.insert({a,b,c});
res++;
}
}
}
}
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... |