| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1294186 | SugarCubes69 | Triple Peaks (IOI25_triples) | C++20 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
long long count_triples(std::vector<int> a) {
ll ans = 0;
ll N = h.size();
// i,k,j
for(int i=0;i<N;i++){
ll j = i+a[i];
if(j>=N || a[j]>=a[i]) continue;
ll k = j-a[j];
ans += (a[k]+a[j]==a[i]);
//equidistant
if(2*a[j]==a[i]) continue;
k = i+a[j];
ans += (a[k]+a[j]==a[i]);
}
for(int j=0;j<N;j++){
ll i = j-a[j];
if(i<0 || a[i]>=a[j]) continue;
ll k = i+a[i];
ans += (a[k]+a[i]==a[j]);
//equidistant
if(2*a[i]==a[j]) continue;
k = j-a[i];
ans += (a[k]+a[j]==a[i]);
}
return ans;
}
std::vector<int> construct_range(int M, int K) {
vector<int> res; res.push_back(1);
for (int i = 1; i < M; i ++) res.push_back(i);
return res;
}
/*void run_part1() {
int N;
assert(1 == scanf("%d", &N));
std::vector<int> H(N);
for (int i = 0; i < N; i++)
assert(1 == scanf("%d", &H[i]));
fclose(stdin);
long long T = count_triples(H);
printf("%lld\n", T);
fclose(stdout);
}
void run_part2() {
int M, K;
assert(2 == scanf("%d %d", &M, &K));
fclose(stdin);
std::vector<int> H = construct_range(M, K);
int N = H.size();
printf("%d\n", N);
for (int i = 0; i < N; i++)
printf("%d%c", H[i], " \n"[i + 1 == N]);
fclose(stdout);
}
int main() {
int part;
assert(1 == scanf("%d", &part));
if (part == 1)
run_part1();
else if (part == 2)
run_part2();
return 0;
}*/
