제출 #1252536

#제출 시각아이디문제언어결과실행 시간메모리
1252536ollelap3개의 봉우리 (IOI25_triples)C++20
0 / 100
2095 ms1860 KiB
#include "triples.h"

using namespace std;
#include <bits/stdc++.h>

#define rep(i,a,b) for(int i = a; i < b; i++)

long long count_triples(std::vector<int> arr) {
    int n = arr.size();

    auto valid = [&](int i, int j, int k) {
        int a[3] = {abs(i-j), abs(i-k), abs(j-k)};
        int b[3] = {arr[i], arr[j], arr[k]};
        sort(a, a+3);
        sort(b, b+3);

        return (a[0] == b[0] && a[1] == b[1] && a[2] == b[2]);
    };


    int ans = 0;
    rep(i,0,n) rep(j,i+1,n) {
        
        set<int> k_cand = {i + arr[i], i + arr[j], j - arr[i], j - arr[i]};
        for (auto k : k_cand) {
            if (i < k && k < j && valid(i, j, k)) {
                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...