Submission #1250517

#TimeUsernameProblemLanguageResultExecution timeMemory
1250517fafnir3개의 봉우리 (IOI25_triples)C++20
8 / 100
2093 ms1864 KiB
#include <bits/stdc++.h> using namespace std; // #define LOCAL // Part I const long long CON = 100; long long chash(int i, int j, int k) { array<int,3> coords{i,j,k}; sort(coords.begin(), coords.end()); long long h = coords[0]; h += CON * coords[1]; h += CON * CON * coords[2]; return h; } bool checkTriple(int i, int j, int k, vector<int>& h) { const int n = h.size(); array<int,3> a{abs(i-j),abs(j-k),abs(k-i)}; array<int,3> b{h[i], h[j], h[k]}; sort(a.begin(), a.end()); sort(b.begin(), b.end()); return a == b; } long long count_triples(vector<int> H) { const int n = H.size(); long long cnt = 0; unordered_set<long long> cs; for (int i = 0; i < n; ++i) { for (int j = i+1; j < n; ++j) { int hi = H[i]; int hj = H[j]; for (auto& k : vector<int>{i-hi,i+hi,i-hj,i+hj,j-hi,j+hi,j-hj,j+hj}) { if (checkTriple(i,j,k,H)) { cs.insert(chash(i,j,k)); break; } } } } return cs.size(); } std::vector<int> construct_range(int M, int K) { return {}; } #ifdef LOCAL int32_t main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; vector<int> a(n); for (auto& e : a) cin >> e; cout << count_triples(a) << '\n'; return 0; } #endif
#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...