Submission #1251089

#TimeUsernameProblemLanguageResultExecution timeMemory
1251089fadyscubeTriple Peaks (IOI25_triples)C++20
1.35 / 100
61 ms1956 KiB
#include "triples.h" #include <set> using namespace std; int checkTriple (vector<int> &H, int a, int b, int c) { if (a == b || b == c || a == c) return 0; int n = H.size(); if (a < 0 || a >= n) return 0; multiset<int> ds = {abs(b-a), abs(c-a), abs(c-b)}; multiset<int> hs = {H[a], H[b], H[c]}; return (ds == hs ? 1 : 0); } long long count_triples(std::vector<int> H) { long long ans = 0; int n = H.size(); for (int i = n-1; i >= 2; i--) { int a = i - H[i]; if (a + H[a] < i) { ans += checkTriple(H, a, a+H[a], i); } if (a < i - H[a] && i - H[a] != a + H[a]) { ans += checkTriple(H, a, i-H[a], i); } } return ans; } std::vector<int> construct_range(int M, int K) { vector<int> v = {8, 9, 16, 17, 7, 2, 16, 3, 1, 1, 6, 4, 18, 9, 8, 5, 9, 18, 17, 12}; return v; }
#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...