제출 #1251039

#제출 시각아이디문제언어결과실행 시간메모리
1251039fadyscube3개의 봉우리 (IOI25_triples)C++20
19.35 / 100
2097 ms1956 KiB
#include "triples.h" #include <set> using namespace std; int checkTriple (vector<int> &H, int a, int b, int c) { int n = H.size(); if (c < 0 || c >= 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 = 0; i < n-1; i++) { for (int j = i+1; j < n; j++) { if (j < i+H[i]) ans += checkTriple(H, i, j, i+H[i]); if (j+H[i] != i+H[i]) ans += checkTriple(H, i, j, j+H[i]); if (i+H[i] != j+H[j] && j+H[i] != j+H[j]) ans += checkTriple(H, i, j, j+H[j]); if (j < i+H[j] && i+H[i] != i+H[j] && j+H[i] != i+H[j] && j+H[j] != i+H[j]) ans += checkTriple(H, i, j, i+H[j]); } } 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...