Submission #1263015

#TimeUsernameProblemLanguageResultExecution timeMemory
1263015nerrrminTriple Peaks (IOI25_triples)C++20
34 / 100
2093 ms3512 KiB
#include "triples.h" #include<bits/stdc++.h> #define pb push_back using namespace std; const int maxn = 2e5 + 10; int n; long long a[maxn]; long long count_triples(std::vector<int> H) { n = H.size(); for (int i = 1; i <= n; ++ i) { a[i] = H[i-1]; } long long ans = 0; for (int i = 1; i <= n; ++ i) { for (int j = i + 2; j <= n; ++ j) { int dist = j - i; if(a[i] == dist || a[j] == dist) { int other = a[i] + a[j] - dist; int pos = i + other; int is = 0; if(i < pos && pos < j && a[pos] == j - pos) { is = 1; ans ++; } pos = j - other; if(is && pos == i + other)continue; if(i < pos && pos < j && a[pos] == pos - i)ans ++; } else { if(a[i] + a[j] == dist) { int pos = i + a[i]; int is = 0; if(i < pos && pos < j && a[pos] == dist) { is = 1; ans ++; } pos = j - a[i]; if(is && pos == i + a[i])continue; if(i < pos && pos < j && a[pos] == dist)ans ++; } } } } return ans; } std::vector<int> construct_range(int M, int K) { return {1, 1, 1}; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...