제출 #1302307

#제출 시각아이디문제언어결과실행 시간메모리
1302307Valaki23개의 봉우리 (IOI25_triples)C++20
18 / 100
2098 ms22248 KiB
#include "triples.h"
#include <bits/stdc++.h>
using namespace std;

#define int long long
#define pb push_back
#define mp make_pair
#define pii pair<int, int>
#define fi first
#define se second

int n;
vector<int> v;

set<vector<int> > s;

bool good(int a, int b, int c) {
    if(a < 1 || a > n || b < 1 || b > n || c < 1 || c > n) {
        return false;
    }
    vector<int> v1 = {abs(a - b), abs(a - c), abs(b - c)};
    vector<int> v2 = {v[a], v[b], v[c]};
    sort(v1.begin(), v1.end());
    sort(v2.begin(), v2.end());
    vector<int> v3 = {a, b, c};
    sort(v3.begin(), v3.end());
    if(v1 == v2) {
        s.insert(v3);
    }
    return (v1 == v2);
}

int count_triples(vector<signed> H) {
    n = H.size();
    v.assign(1 + n + 1, 0);
    for(int i = 1; i <= n; i++) {
        v[i] = H[i - 1];
    }
    for(int i = 1; i <= n; i++) {
        for(int j = i + 1; j <= n; j++) {
            good(i, j, i + v[i]);
            good(i, j, i - v[i]);
            good(i, j, i + v[j]);
            good(i, j, i - v[j]);
            good(i, j, j + v[i]);
            good(i, j, j - v[i]);
            good(i, j, j + v[j]);
            good(i, j, j - v[j]);
        }
    }
    return s.size();
}

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