# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1255191 | sleepntsheep | Triple Peaks (IOI25_triples) | C++20 | 2095 ms | 2632 KiB |
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2")
#include "triples.h"
#include <algorithm>
#include <array>
#include<cstring>
#include <cstdio>
std::vector<int> H;
long long count;
int x[3],y[3];
void okay(std::vector<int> &H, register int i, register int j, register int k) {
x[0]=H[i],x[1]=H[j],x[2]=H[k];
y[0]=j-i,y[1]=k-i,y[2]=k-j;
std::sort(x,x+3);
std::sort(y,y+3);
count+=!memcmp(x,y,3*sizeof*x);
}
long long count_triples(std::vector<int> H) {
::H=H;
{
int N = H.size();
count = 0;
for (int i = 0; i < N; ++i) {
for (int k = i + 1; k < N; ++k) {
if (k - i == H[i] or H[k] == k - i) {
int lef = H[i] + H[k] - (k - i);
if (lef >= (k - i)) continue;
int j;
j = i + lef;
(okay(H, i, j, k));
if (k - lef != i + lef) {
(okay(H, i, k - lef, k));
}
} else {
if (H[i] + H[k] != (k - i))
continue;
int j;
j = i + H[i];
(okay(H, i, j, k));
if (i + H[i] != i + H[k]) {
(okay(H, i, i + H[k], k));
}
}
}
}
return count;
}
}
std::vector<int> construct_range(int M, int K) {
return {1, 1, 1};
}
Compilation message (stderr)
# | 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... |