Submission #1250329

#TimeUsernameProblemLanguageResultExecution timeMemory
1250329faustaadpTriple Peaks (IOI25_triples)C++20
0 / 100
16 ms4024 KiB
#include "triples.h"
#include "bits/stdc++.h"
using namespace std;
typedef long long ll;
#define fi first
#define se second
#define pb push_back

vector<vector<ll> > isi;
vector<ll> h;
void cek(ll A, ll B, ll C) {
  if(A >= B || B >= C) return ;
  vector<ll> tmp1, tmp2;
  tmp1.pb(h[A]);
  tmp1.pb(h[B]);
  tmp1.pb(h[C]);
  tmp2.pb(B - A);
  tmp2.pb(C - B);
  tmp2.pb(C - A);
  sort(tmp1.begin(), tmp1.end());
  sort(tmp2.begin(), tmp2.end());
  for(int i = 0; i < 3; i++) {
    if(tmp1[i] != tmp2[i]) {
      return ;
    }
  }
  isi.pb({A, B, C});
}
long long count_triples(std::vector<int> H) {
  ll N = H.size();
  h.clear();
  isi.clear();
  for(ll i = 0; i < N; i++) {
    h.pb(H[i]);
  }
  for(ll j = 0; j < N; j++) {
    ll i = j - H[i];
    if(i < 0)continue;
    cek(i, i + H[i], j);
    cek(i, i + H[j], j);
    cek(i, j - H[i], j);
    cek(i, j - H[j], j);
  }
  ll ret = 0;
  sort(isi.begin(), isi.end());
  for(ll i = 0; i < isi.size(); i++) {
    if(i == 0 || isi[i - 1] != isi[i]) {
      ret++;
    }
  }
  return ret;
}

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