Submission #125258

#TimeUsernameProblemLanguageResultExecution timeMemory
125258dragonslayeritMountains (IOI17_mountains)C++14
0 / 100
2 ms376 KiB
#include "mountains.h"
#include <vector>
#include <algorithm>

int solve(int* begin,int* end){
  if(begin==end) return 0;
  int ans=1;
  std::vector<int*> sub;
  for(auto it=begin+1;it!=end;it++){
    sub.push_back(it);
  }
  std::stable_sort(sub.begin(),sub.end(),[begin](int* a,int* b){return (a-begin)*(*b-*begin)>(b-begin)*(*a-*begin);});
  int* last=begin;
  for(int* it:sub){
    if(it<last) continue;
    ans+=solve(last+1,it);
    last=it;
  }
  return std::max(ans,solve(begin+1,end));
}

int maximum_deevs(std::vector<int> y) {
  return solve(y.data(),y.data()+y.size());
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...