Submission #1093964

#TimeUsernameProblemLanguageResultExecution timeMemory
1093964AvianshDancing Elephants (IOI11_elephants)C++17
26 / 100
2130 ms2324 KiB
#include <algorithm>
#include "elephants.h"

int n;
int l;
int *x;
int uni[50000];
int siz = 0;

void init(int N, int L, int X[])
{
    n = N;
    l=L;
    x=X;
    for(int i = 0;i<n;i++){
        uni[i]=x[i];
    }
    siz=n;
    std::sort(uni,uni+siz);
}

void rem(int ind){
    for(int i = ind+1;i<siz;i++){
        uni[i-1]=uni[i];
    }
    siz--;
}

void add(int ind , int val){
    siz++;
    for(int i = siz;i>ind;i--){
        uni[i]=uni[i-1];
    }
    uni[ind]=val;
}

int update(int i, int y)
{
    for(int e = 0;e<siz;e++){
        if(uni[e]==x[i]){
            rem(e);
            break;
        }
    }
    x[i]=y;
    if(uni[siz-1]<x[i]){
        add(siz,x[i]);
    }
    else{
        for(int e = 0;e<siz;e++){
            if(uni[e]>=x[i]){
                add(e,x[i]);
                break;
            }
        }
    }
    int ans = 1;
    int las = uni[0];
    for(int i = 0;i<siz;i++){
        int curr = uni[i];
        if(curr-las>l){
            las=curr;
            ans++;
        }
    }
    return ans;
}
#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...