제출 #1331277

#제출 시각아이디문제언어결과실행 시간메모리
1331277Mamikonm1코끼리 (Dancing Elephants) (IOI11_elephants)C++17
26 / 100
9085 ms4856 KiB
#include "elephants.h"
#include<bits/stdc++.h>
using namespace std;
int n,l;
vector<int>x,Y;
map<int,int>ind;
void init(int N, int L, int X[])
{
    n = N;
    l=L;
    for(int i=0;i<n;++i)Y.push_back(X[i]);
    x=Y;
    sort(begin(x),end(x));
    for(int i=0;i<n;++i)ind[x[i]]=i;
}

int update(int i, int y)
{
    int id=ind[Y[i]];
    if(Y[i]>y){
        int j=id-1;
        while(j>=0 and x[j]>y){
            ind[x[j]]++;
            x[j+1]=x[j];
            --j;
        }
        x[j+1]=y;
        ind[y]=j+1;
    }
    else if(Y[i]!=y){
        int j=id+1;
        while(j<n and x[j]<y){
            ind[x[j]]--;
            x[j-1]=x[j];
            ++j;
        }
        x[j-1]=y;
        ind[y]=j-1;
    }
    Y[i]=y;
    int ans=0,lf=-(l*2);
    for(int i=0;i<n;++i){
        if(x[i]-lf>l){
            lf=x[i];
            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...