#include "triples.h"
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
vector<int> H;
ll n;
bool check(ll i,ll j,ll k){
if(i<0||j<0||k<0||i>=n||j>=n||k>=n)return 0;
vector<ll> s1,s2;
s1.push_back(abs(j-i));
s1.push_back(abs(k-i));
s1.push_back(abs(j-k));
sort(s1.begin(),s1.end());
if(s1[0]==0)return 0;
s2.push_back(H[i]);
s2.push_back(H[j]);
s2.push_back(H[k]);
sort(s2.begin(),s2.end());
return s1==s2;
}
ll sub4(){
ll ans=0;
for(int i=n-1;i>1;i--){
ll x2=i-H[i];
ll x3=x2+H[x2],x4=i-H[x2];
if(i-x3==H[x3])ans++;
if(x3!=x4)
if(x4-x2==H[x4])ans++;
}
return ans;
}
ll sub2(){
return 0;
}
ll sub3(){
return 0;
}
ll count_triples(vector<int> h) {
n=H.size();
H=h;
return sub4();
if(n<2001)return sub3();
else return sub2();
}
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... |