Submission #1307002

#TimeUsernameProblemLanguageResultExecution timeMemory
1307002MunkhErdeneTriple Peaks (IOI25_triples)C++17
6 / 100
23 ms3532 KiB
#include "triples.h"
#include <bits/stdc++.h>

using namespace std;
#define _ << ' ' <<
using ll = long long;
long long count_triples(std::vector<int> H) {
    vector<ll> a({H.begin(), H.end()});
    ll n = a.size();
    ll ans = 0;
    for(ll i = 0; i < n; i++) {
        for(ll j = i + 2; j < n && j <= i + 10; j++){
            auto [mx, mn] = make_pair(a[i], a[j]);
            if(mn > mx) swap(mx, mn);
            ll d = j - i;
            if(mx > d) continue;
            if(mx == d) {
                ll cand1 = i + mn;
                ll cand2 = j - mn;
                if(cand1 == cand2) {
                    if(j - cand1 == a[cand1] && cand1 != j) {ans++;}
                    continue;
                }
                if(j - cand1 == a[cand1] && cand1 != j) {ans++;}
                if(cand2 - i == a[cand2] && cand2 != i) {ans++;}
                
            }
            else {
                if(a[i] + a[j] != d) continue;
                ll cand1 = i + mn;
                ll cand2 = i + mx;
                if(cand1 == cand2) {
                    if(a[cand1] == d) {ans++;}
                    continue;
                }
                if(a[cand1] == d) {ans++;}
                if(a[cand2] == d) {ans++;}
            }
        }
    }
    return ans;
}

std::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...