Submission #764354

#TimeUsernameProblemLanguageResultExecution timeMemory
764354boris_mihovDancing Elephants (IOI11_elephants)C++17
26 / 100
9040 ms1972 KiB
#include "elephants.h"
#include <algorithm>
#include <iostream>
#include <numeric>
#include <cassert>
#include <random>
#include <vector>
#include <set>

typedef long long llong;
const int MAXN = 150000 + 10;
const int INF  = 2e9;

int n, len;
int a[MAXN];
int x[MAXN];
std::multiset <int> ms;
void init(int N, int L, int X[])
{
    n = N;
    len = L;
    for (int i = 0 ; i < n ; ++i)
    {
        a[i + 1] = x[i + 1] = X[i];
        ms.insert(X[i]);
    }
}

int update(int idx, int y)
{
    idx++;
    ms.erase(ms.find(x[idx]));
    x[idx] = y;
    ms.insert(y);

    int coveredTo = -1, ans = 0;
    while (true)
    {
        auto it = ms.upper_bound(coveredTo);
        if (it == ms.end())
        {
            break;
        }

        ans++;
        coveredTo = (*it) + len; 
    }

    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...