Submission #1046562

#TimeUsernameProblemLanguageResultExecution timeMemory
1046562oscar1fDancing Elephants (IOI11_elephants)C++17
50 / 100
9061 ms10588 KiB
#include<bits/stdc++.h>
#include "elephants.h"
using namespace std;

const int MAX_ELEPH=150*1000+5,INFINI=1000*1000*1000+5;
int nbEleph,taillePhoto;
pair<int,int> posTri[MAX_ELEPH];

void init(int N, int L, int X[]) {
    nbEleph=N;
    taillePhoto=L;
    for (int i=0;i<nbEleph;i++) {
        posTri[i]={X[i],i};
    }
}

int calc() {
    int ans=0,dernDeb=-INFINI;
    for (int i=0;i<nbEleph;i++) {
        if (dernDeb+taillePhoto<posTri[i].first) {
            ans++;
            dernDeb=posTri[i].first;
        }
    }
    return ans;
}

int update(int posModif, int valNouv) {
    int pos=0;
    while (posTri[pos].second!=posModif) {
        pos++;
    }
    posTri[pos].first=valNouv;
    while (pos>0 and posTri[pos]<posTri[pos-1]) {
        swap(posTri[pos-1],posTri[pos]);
        pos--;
    }
    while (pos<nbEleph-1 and posTri[pos]>posTri[pos+1]) {
        swap(posTri[pos],posTri[pos+1]);
        pos++;
    }
    return calc();
}
#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...