제출 #1249836

#제출 시각아이디문제언어결과실행 시간메모리
1249836kduckp3개의 봉우리 (IOI25_triples)C++20
6.17 / 100
1178 ms4120 KiB
#include "triples.h" #include <vector> #include <algorithm> using namespace std; long long count_triples(vector<int> H) { int n = H.size(); long long res = 0; if (n <= 2000) { for (int i = 0; i < n; i++) for (int j = i + 1; j < n; j++) for (int k = j + 1; k < n; k++) { vector<int> height = {H[i], H[j], H[k]}; vector<int> dist = {j - i, k - i, k - j}; int sum = 0; for(int i = 0; i < 3; i++) { sum += height[i]; sum -= dist[i]; } if (sum == 0) res++; } return res; } bool small_value = true; for (int h : H) if (h > 10) { small_value = false; break; } if (small_value) { vector<pair<int, int>> info; for (int i = 0; i < n; ++i) { info.push_back({i, H[i]}); } for (int i = 0; i < n; ++i) for (int j = i + 1; j < min(n, i + 11); ++j) for (int k = j + 1; k < min(n, i + 22); ++k) { vector<int> h = {H[i], H[j], H[k]}; if (*max_element(h.begin(), h.end()) > 10) continue; vector<int> d = {j - i, k - i, k - j}; sort(h.begin(), h.end()); sort(d.begin(), d.end()); if (h == d) res++; } return res; } return 0; } vector<int> construct_range(int M, int K) { return {1, 1, 2}; }
#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...