Submission #874520

#TimeUsernameProblemLanguageResultExecution timeMemory
874520vjudge1Job Scheduling (CEOI12_jobs)C++14
55 / 100
185 ms21332 KiB
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstdint>

using namespace std;
using Pair = pair<int64_t, int64_t>;

constexpr int64_t maxn = 1000000;
int64_t n, d, m;
Pair a[maxn];

int main()
{
    ios_base::sync_with_stdio(false);

    cin >> n >> d >> m;
    for (int64_t i = 0; i < m; i++)
    {
        cin >> a[i].first;
        a[i].second = i + 1;
    }
    sort(a, a + m);

    int64_t l = ceil((float)m / (float)n), r = m;
    while (l < r)
    {
        int64_t k = (l + r) / 2;

        bool result = true;
        for (int64_t i = 0; i * k < m; i++)
        {
            if (a[i * k].first + d <= i)
            {
                result = false;
                break;
            }
        }

        if (result)
            r = k;
        else
            l = k + 1;
    }

    cout << l << '\n';
    for (int64_t i = 0; i < n; i++)
    {
        for (int64_t j = i * l; j < min(m, (i + 1) * l); j++)
            cout << a[j].second << ' ';
        cout << "0\n";
    }

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...