#include <bits/stdc++.h>
using namespace std;
long long count_triples(std::vector<int> H){
int N = H.size(), ans = 0;
if(N <= 5000){
map<int,vector<int>> mp;
for(int i = 0; i < N; i++){
mp[i-H[i]].push_back(i);
}
for(int i = 0; i < N; i++){
for(int j = i+1; j < N; j++){
const int k = j-i;
if(k != H[i] and k != H[j]){
if(k != abs(H[i]-H[j])) continue;
const int p = j+min(H[i],H[j]);
if(p >= N or H[p] != k or p <= j) continue;
ans++;
continue;
}
if(k == H[i]){
for(auto &t : mp[i]){
if(t <= j) continue;
if(t-j != H[j]) continue;
ans++;
}
for(auto &t : mp[j]){
if(t <= j) continue;
if(t-i != H[j]) continue;
ans++;
}
continue;
}
for(auto &t : mp[i]){
if(t <= j) continue;
if(abs(t-j) != H[i]) continue;
ans++;
}
for(auto &t : mp[j]){
if(t <= j) continue;
if(abs(t-i) != H[i]) continue;
ans++;
}
continue;
}
}
return ans;
}
for(int i = 0; i < N-9; i++){
vector<int> a, b;
for(int j = i; j <= i+9; j++){
a.push_back(H[j]);
if(j < i+9) b.push_back(H[j]);
}
ans += count_triples(a)-count_triples(b);
}
return ans;
}
std::vector<int> construct_range(int M, int K){
vector<int> a = {4, 1, 4, 3, 2, 6, 4, 1, 4, 3, 2, 6, 4, 1, 4, 3, 2, 6, 1, 2};
if(M == 20) return a;
if(M == 500){
for(int i = 0; i < 24; i++){
auto op = a;
for(int j = 0; j < 20; j++) a.push_back(op[j]);
}
return a;
}
if(M == 5000){
for(int i = 0; i < 245; i++){
auto op = a;
for(int j = 0; j < 20; j++) a.push_back(op[j]);
}
return a;
}
if(M == 30000){
for(int i = 0; i < 1200; i++){
auto op = a;
for(int j = 0; j < 20; j++) a.push_back(op[j]);
}
return a;
}
for(int i = 0; i < 2000; i++){
auto op = a;
for(int j = 0; j < 20; j++) a.push_back(op[j]);
}
return a;
}
| # | 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... |