Submission #1250590

#TimeUsernameProblemLanguageResultExecution timeMemory
1250590liamislazyTriple Peaks (IOI25_triples)C++20
15.13 / 100
2095 ms2488 KiB
#include "triples.h"
#include <bits/stdc++.h>
#define el '\n'
typedef long long llo;
#define fn(i,a,b) for (int i = a; i <= b; i++)
#define rn(i,a,b) for (int i = a; i >= b; i--)
using namespace std;

llo count_triples(vector<int> H) {
    int n = H.size();
    llo ans = 0;
    fn(j,0,n-1) {
        fn(a,1,j) {
            int i = j - a;
            if(i < 0) break;
            int max_b = n - 1 - j;
            fn(b,1,max_b) {
                int k = j + b;
                if(k >= n) break;
                vector<int> d = {a, b, a + b};
                vector<int> h = {H[i], H[j], H[k]};
                sort(d.begin(), d.end());
                sort(h.begin(), h.end());
                if(d == h) ans++;
            }
        }
    }
    return ans;
}
vector<int> construct_range(int M, int K) {
    llo n = M;
    vector<int> a = {1,2,1};
    llo tmp = 2;
    while(a.size() < n){
        llo v = a.size() + 1;
        fn(i,0,tmp+1) a.push_back(v-i);
        tmp = v;
    }
    while(a.size() > n || a.back() >= n) a.pop_back();
    return a;
}
#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...