Submission #1286348

#TimeUsernameProblemLanguageResultExecution timeMemory
1286348sampaio_kk3개의 봉우리 (IOI25_triples)C++20
0.01 / 100
489 ms12936 KiB
#include <bits/stdc++.h> using namespace std; long long count_triples(vector<int> H) { int N = H.size(); long long ans = 0; vector<vector<int>> pos(N+1); for(int i = 0; i < N; i++) if(H[i] <= N) pos[H[i]].push_back(i); for(int i = 0; i < N; i++){ for(int j = i+1; j < min(N,i+2000); j++){ // limitar distância para √N ≈ 2000 int a = j-i; int x = H[i], y = H[j]; int sum = x+y; if(sum <= N){ auto &v = pos[sum]; auto it = upper_bound(v.begin(), v.end(), j); ans += v.end() - it; } } } return ans; } vector<int> construct_range(int M, int K){ int N = min(M, (int)sqrt(K)+10); vector<int> H(N); for(int i = 0; i < N; i++) H[i] = (i%100)+1; return H; }
#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...