#include "elephants.h"
#include "bits/stdc++.h"
using namespace std;
int n, l;
vector<int> Posiciones;
vector< pair<int, int> > a;
void init(int N, int L, int X[]){
  n = N;
  l = L;
  for(int i = 0; i < n; i++){
    a.push_back({X[i], i});
    Posiciones.push_back(i);
  }
}
int update(int i, int y){
  a[Posiciones[i]].first = y;
  //cerr<<Posiciones[i]<<"\n";
  for(int j = Posiciones[i]; j < n - 1; j++){
    //cerr<<a[j].first<<" "<<a[j + 1].first<<"\n";
    if(a[j].first <= a[j + 1].first){
      //cerr<<"Roto.\n";
      break;
    } else {
      Posiciones[i]++;
      Posiciones[a[j + 1].second]--;
      swap(a[j], a[j + 1]);
    }
  }
  //cerr<<Posiciones[i]<<"\n";
  for(int j = Posiciones[i]; j > 0; j--){
    //cerr<<a[j - 1].first<<" "<<a[j].first<<"\n";
    if(a[j - 1].first <= a[j].first){
      //cerr<<"Roto.\n";
      break;
    } else {
      Posiciones[i]--;
      Posiciones[a[j - 1].second]++;
      swap(a[j], a[j - 1]);
    }
  }
  int r = 0, p = -2;
  for(auto E: a){
    //cerr<<E.first<<" ";
    if(p == -2){
      r++;
      p = E.first;
    } else if(E.first > p + l){
      r++;
      p = E.first;
    }
  }
  /*cerr<<"\n";
  for(auto E: a) cerr<<E.second<<" ";
  cerr<<"\n\n";*/
  return r;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |