#include <bits/stdc++.h>
using namespace std;
using ll = long long;
//sub4:
std::vector<int> construct_range(int M, int K)
{
return{};
}
ll count_triples(vector<int> H)
{
int n = H.size();
ll ans = 0;
//hi = k - i
for (int i = 0; i < n; i++)
{
int k = i + H[i];
if (k < 0 || k >= n) continue;
//H[k] == j - i
int j1 = i + H[k];
if (j1 > i && j1 < k && j1 < n && H[j1] == k - j1) ans++;
//H[k] == k - j
int j2 = k - H[k];
if (j2 > i && j2 < k && j2 < n && H[j2] == j2 - i) ans++;
}
//hk = k - i
for (int k = 0; k < n; k++)
{
int i = k - H[k];
if (i < 0 || i >= n) continue;
//H[i] == j - i => j = i + H[i], check H[j] == k - j
int j1 = i + H[i];
if (j1 > i && j1 < k && j1 < n && H[j1] == k - j1) ans++;
//H[i] == k - j => j = k - H[i], check H[j] == j - i
int j2 = k - H[i];
if (j2 > i && j2 < k && j2 < n && H[j2] == j2 - i) ans++;
}
//hj = k - i, hi = j - i, hk = k - j
for (int i = 0; i < n; i++)
{
int j = i + H[i];
if (j < 0 || j >= n) continue;
int k = i + H[j];
if (k < 0 || k >= n) continue;
if (j < k && H[j] == k - i && H[k] == k - j) ans++;
}
unordered_map<ll, vector<int>> nhom;
for(int i = 1; i <= n; i++)
{
nhom[H[i] - i].push_back(i);
}
for(auto &kv : nhom)
{
ll x = kv.first;
auto &v = kv.second;
int m = v.size();
for(int a = 0; a < m; a++)
{
int i = v[a];
for(int b = a+1; b < m; b++)
{
int j = v[b];
int k = i + j + x;
if(k >= 1 && k <= n && k != i && k != j) ans++;
}
}
}
return ans;
}
# | 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... |