Submission #1251045

#TimeUsernameProblemLanguageResultExecution timeMemory
1251045JoksimKaktusTriple Peaks (IOI25_triples)C++20
11 / 100
26 ms1968 KiB
#include "triples.h"
#include <bits/stdc++.h>

using namespace std;

int check(vector<int> a,vector<int> b){
    sort(a.begin(), a.end());
    sort(b.begin(), b.end());
    for(int i = 0;i < 3;i++){
        if(a[i] != b[i])return 0;
    }
    return 1;
}
//bool good = check({abs(a-b),abs(a-c),abs(b-c)},{v[a],v[b],v[c]});
long long count_triples(vector<int> v) {
    long long res = 0;
    int n = v.size();
    for(int a = n-1;a >= 0;a--){
        int b = a - v[a];
        if(b < 0)continue;
        int c = b + v[b];
        int c2 = a - v[b];
        if(a != c){
            res += check({abs(a-b),abs(a-c),abs(b-c)},{v[a],v[b],v[c]});
        }
        if(c2 != c && c2 != b){
            c = c2;
            res += check({abs(a-b),abs(a-c),abs(b-c)},{v[a],v[b],v[c]});
        }
    }
    return res;
}

vector<int> construct_range(int M, int 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...