Submission #1254061

#TimeUsernameProblemLanguageResultExecution timeMemory
1254061vpinxTriple Peaks (IOI25_triples)C++20
14 / 100
2095 ms1984 KiB
#include "triples.h"
#include <bits/stdc++.h>
using namespace std;
#define int long long

int solve_subtask2(vector<int32_t> &h) {
    int n = h.size(), ans = 0;
    for (int i = 0; i < n - 2; i++) {
        for (int j = i + 1; j < min(i + 12, n - 1); j++) {
            for (int z = j + 1; z < min(j + 12, n); z++) {
                vector<int> v = {h[i], h[j], h[z]};
                vector<int> d = {j - i, z - i, z - j};
                
                sort(v.begin(), v.end());
                sort(d.begin(), d.end());
                if (v == d) ans++;
            }
        }
    }
    return ans;
}

int count_triples(vector<int32_t> h) {
    int n = h.size();
    bool subtask2 = true;
    for (int i = 0; i < n; i++) {
        if (h[i] > 10) {
            subtask2 = false;
            break;
        }
    }
    if (subtask2) return solve_subtask2(h);
    
    int ans = 0;
    for (int i = 0; i < n - 2; i++) {
        for (int j = i + 1; j < n - 1; j++) {
            for (int z = j + 1; z < n; z++) {
                vector<int> v = {h[i], h[j], h[z]};
                vector<int> d = {j - i, z - i, z - j};
                
                sort(v.begin(), v.end());
                sort(d.begin(), d.end());
                if (v == d) ans++;
            }
        }
    }
    return ans;
}

vector<int32_t> construct_range(int32_t m, int32_t k) {
    return {1, 1, 1};
}
#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...