제출 #1256715

#제출 시각아이디문제언어결과실행 시간메모리
1256715medmdg3개의 봉우리 (IOI25_triples)C++20
11 / 100
13 ms2732 KiB
#include "triples.h"
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
vector<int> H;
ll n;
bool check(ll i,ll j,ll k){
  if(i<0||j<0||k<0||i>=n||j>=n||k>=n)return 0;
  vector<ll> s1,s2;
  s1.push_back(abs(j-i));
  s1.push_back(abs(k-i));
  s1.push_back(abs(j-k));
  sort(s1.begin(),s1.end());
  if(s1[0]==0)return 0;
  s2.push_back(H[i]);
  s2.push_back(H[j]);
  s2.push_back(H[k]);
  sort(s2.begin(),s2.end());
  return s1==s2;
}
ll sub4(){
  ll ans=0;
  for(int i=n-1;i>1;i--){
    ll x2=i-H[i];
    if(x2<0)continue;
    ll x3=x2+H[x2],x4=i-H[x2];
    if(x3<i && i-x3==H[x3])ans++;
    if(x3!=x4)
    if(x4>x2 && x4-x2==H[x4])ans++;
  }
  return ans;
}
ll sub2(){
  return 0;
}
ll sub3(){
  return 0;
}
ll count_triples(vector<int> h) {
  n=h.size();

  H=h;
  return sub4();
  if(n<2001)return sub3();
  else return sub2();
}

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