Submission #1344777

#TimeUsernameProblemLanguageResultExecution timeMemory
1344777ElayV133개의 봉우리 (IOI25_triples)C++20
4.24 / 100
19 ms2728 KiB
#include "triples.h"
#include "bits/stdc++.h"
using namespace std;

#define ll long long

int N;
vector<int>h;

ll check(int i,int j,int k){
      N=h.size();
      if(j<0) return 0;
      if(j>=N) return 0;
      if(!(i<j&&j<k)) return 0;
      vector<int>D1={h[i],h[j],h[k]};
      vector<int>D2={abs(i-j),abs(j-k),abs(k-i)};
      sort(D1.begin(),D1.end());
      sort(D2.begin(),D2.end());
      return (D1==D2);
}

long long count_triples(vector<int>H)
{
      h=H;
      int N=H.size();
      ll res=0;
      for(int k=0;k<N;k++){
            int i=k-H[k];
            if(i<0) continue;
            int j1=k-H[i];
            int j2=H[i]+i;
            res+=check(i,j1,k);
            res+=check(i,j2,k);
      }
      return res;
}

vector<int>construct_range(int M,int K)
{
      vector<int>H(M);
      vector<int>ord={1,2,1,3,2,3};
      int p=0;
      for(int i=0;i<M;i++){
            H[i]=ord[p];
            ++p;
            if(p==ord.size()) p=0;
      }
      return H;
}
#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...