#include<bits/stdc++.h>
using namespace std;
vector<int>construct_range(int M,int K){
vector<int>a(M);
for(int i=0;i<M;i++){
if(i%4==0||i%4==2)a[i]=1;
else if(i%4==1)a[i]=2;
else a[i]=3;
}return a;
}
bool check(int i1,int i2,int i3,vector<int>&H){
vector<int>H_i = {H[i1],H[i2],H[i3]};
sort(H_i.begin(),H_i.end());
vector<int>H_i_2 ={abs(i2-i1),abs(i3-i1),abs(i3-i2)};
sort(H_i_2.begin(),H_i_2.end());
if(H_i[0]==H_i_2[0]&&H_i[1]==H_i_2[1]&&H_i[2]==H_i_2[2]){
//if(s.find({i1,i2,i3})!=s.end())return false;
//s.insert({i1,i2,i3});
//cout << i1 << " " << i2 << " " << i3 << endl;
return true;
}else return false;
}
long long count_triples(vector<int>H){
//set<tuple<int,int,int>>s;
int n = H.size();
int cant =0 ;
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){//i+H[i],i-H[i],j+H[i],j-H[i]
if(i+H[i]<n&&i+H[i]>=j&&check(i,j,i+H[i],H)){
cant++;
}else if(i+H[j]<n&&i+H[j]>=j&&check(i,j,i+H[j],H)){
cant++;
}else if(j+H[i]<n&&check(i,j,j+H[i],H)){
cant++;
}else if(j+H[j]<n&&check(i,j,j+H[j],H)){
cant++;
}
}
}return cant;
}
/*
si hay alguno q cuadra --> cuatro para un lado y simetrico y hecho, simulas
si ninguno cuadra-->
4--6----2
*//*
signed main(){
cout << count_triples({4,1,4,3,2,6,1}) << '\n';
vector<int>ans = construct_range(18,30);
for(auto it : ans)cout << it << " ";
cout << '\n';
cout << count_triples(construct_range(18,30)) << '\n';
}*/
| # | 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... |