Submission #1250052

#TimeUsernameProblemLanguageResultExecution timeMemory
1250052testacc11Triple Peaks (IOI25_triples)C++20
Compilation error
0 ms0 KiB
// triples.cpp
#include <vector>
using namespace std;
using ll = long long;

// Part I
ll count_triples(const vector<int>& H) {
    int N = H.size();
    vector<vector<int>> L1(N);
    vector<vector<int>> S(2*N);
    for(int i = 0; i < N; i++){
        int j1 = i + H[i];
        if(j1 < N) L1[j1].push_back(i);
        int T = i + H[i];
        S[T].push_back(i);
    }
    ll ans = 0;
    for(int j = 0; j < N; j++){
        int hj = H[j];
        // Case A
        int i = j - hj;
        if(i >= 0){
            int hi = H[i], k = j + hi;
            if(k < N && hi + hj == H[k]) ans++;
        }
        // Case B
        int k = j + hj;
        if(k < N){
            int hk = H[k], ii = k - hk;
            if(ii < j && ii >= 0 && hk - hj == H[ii]) ans++;
        }
        // Case C1
        for(int ii: L1[j]){
            int hi = H[ii], kk = ii + hj;
            if(kk > j && kk < N && H[kk] == hj - hi) ans++;
        }
        // Case C2
        int Tj = j + hj;
        if(Tj < (int)S.size()){
            for(int kk: S[Tj]){
                if(kk <= j) continue;
                int ii = kk - hj;
                if(ii < j && ii >= 0 && H[ii] == kk - j) ans++;
            }
        }
    }
    return ans;
}

// Part II stub (if you’re not doing Part II, you can leave it empty)
vector<int> construct_range(int M, int K) {
    return vector<int>();  // or your implementation
}

Compilation message (stderr)

/usr/bin/ld: /tmp/ccFVeaeb.o: in function `main':
grader.cpp:(.text.startup+0x37b): undefined reference to `count_triples(std::vector<int, std::allocator<int> >)'
collect2: error: ld returned 1 exit status