Submission #1255191

#TimeUsernameProblemLanguageResultExecution timeMemory
1255191sleepntsheepTriple Peaks (IOI25_triples)C++20
34 / 100
2095 ms2632 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)

triples.cpp:13:45: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   13 | void okay(std::vector<int> &H, register int i, register int j, register int k) {
      |                                             ^
triples.cpp:13:61: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   13 | void okay(std::vector<int> &H, register int i, register int j, register int k) {
      |                                                             ^
triples.cpp:13:77: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   13 | void okay(std::vector<int> &H, register int i, register int j, register int k) {
      |                                                                             ^
#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...