# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1250163 | liamislazy | Triple Peaks (IOI25_triples) | C++20 | 0 ms | 0 KiB |
#include "triples.h"
#include <bits/stdc++.h>
#define el '\n'
typedef long long llo;
#define fn(i,a,b) for (int i = a; i <= b; i++)
#define rn(i,a,b) for (int i = a; i >= b; i--)
using namespace std;
long long count_triples(std::vector<int> H) {
int n = H.size();
llo ans = 0;
fn(j,0,n-1) {
fn(i,0,j-1) {
int d1 = j - i;
int x = H[i];
int y = H[j];
int k;
if (H[i] == d1) {
int d2 = H[j];
k = j + d2;
if (k < N && H[k] == d1 + d2) ans++;
}
if (H[j] == d1) {
int d2 = H[i];
k = j + d2;
if (k < N && H[k] == d1 + d2) ans++;
}
if (H[i] == d1 && H[j] > d1) {
int d2 = H[j] - d1;
k = j + d2;
if (k < N && H[k] == H[j]) ans++;
}
if (H[j] == d1 && H[i] > d1) {
int d2 = H[i] - d1;
k = j + d2;
if (k < N && H[k] == H[i]) ans++;
}
if (H[j] == d1 + H[i]) {
int d2 = H[i];
k = j + d2;
if (k < N && H[k] == d1) ans++;
}
if (H[i] == d1 + H[j]) {
int d2 = H[j];
k = j + d2;
if (k < N && H[k] == d1) ans++;
}
}
}
return ans;
}
std::vector<int> construct_range(int M, int K) {
return{};
}