제출 #1249839

#제출 시각아이디문제언어결과실행 시간메모리
1249839kduckp3개의 봉우리 (IOI25_triples)C++20
0.17 / 100
12 ms1860 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 < min(n, i + H[i] + 1); ++j)
                for (int k = j + 1; k < min(n, i + H[i] + H[j] + 1); ++k) {
                    vector<int> h = {H[i], H[j], H[k]};
                    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;
    }

    bool small_value = true;
    for (int h : H)
        if (h > 10) {
            small_value = false;
            break;
        }

    if (small_value) {
        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]};
                    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...