Submission #1046567

#TimeUsernameProblemLanguageResultExecution timeMemory
1046567oscar1fDancing Elephants (IOI11_elephants)C++17
50 / 100
9086 ms8800 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; int posTri[MAX_ELEPH]; int posCour[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]; posCour[i]=X[i]; } } int calc() { int ans=0,dernDeb=-INFINI; for (int i=0;i<nbEleph;i++) { if (dernDeb+taillePhoto<posTri[i]) { ans++; dernDeb=posTri[i]; } } return ans; } int update(int posModif, int valNouv) { int deb=0,fin=nbEleph-1,mid; while (deb!=fin) { mid=(deb+fin+1)/2; if (posTri[mid]<=posCour[posModif]) { deb=mid; } else { fin=mid-1; } } int pos=deb; posTri[pos]=valNouv; posCour[posModif]=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...