Submission #1186509

#TimeUsernameProblemLanguageResultExecution timeMemory
1186509simona1230Dancing Elephants (IOI11_elephants)C++20
26 / 100
9091 ms4104 KiB
#include "elephants.h"
#include <bits/stdc++.h>
using namespace std;

int n;
int sz=40;
int b[150001][55];
multiset<int> s;
int l;
int p[150001];

void init(int N, int L, int X[])
{
    l=L;
    for(int i=0;i<N;i++)
    {
        s.insert(X[i]);
        p[i]=X[i];
    }

    /*auto it=s.end();

    for(int i=N-1;i>=0;i--)
    {
        it--;
        mp[*it]=i;
        int x=N-2*i+1;
        for(int j=x+1;j<=sz;j++)
            b[i][j]=1e9;
        auto it1=s.lower_bound(*it+L);
        it1++;
        if(it1==s.end()||mp[*it1]-i+1>=sz)
        {
            for(int j=1;j<=x;j++)
                b[i][j]=1;
            continue;
        }

        int y=mp[*it1];
        y=mp[y];

    }*/
}

int update(int i, int y)
{
    s.erase(s.find(p[i]));
    s.insert(y);
    p[i]=y;
    int x=*s.begin(),ans=1;
    for(auto it=s.begin();it!=s.end();it++)
        if(*it>x+l)x=*it,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...