Submission #825431

# Submission time Handle Problem Language Result Execution time Memory
825431 2023-08-14T20:07:10 Z Nelt Job Scheduling (CEOI12_jobs) C++17
22 / 100
138 ms 8948 KB
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx,avx2,fma")

#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>

/* DEFINES */
#define S second
#define F first
#define ll long long
#define ull unsigned long long
#define ld long double
#define npos ULLONG_MAX
#define INF LLONG_MAX
#define vv(a) vector<a>
#define pp(a, b) pair<a, b>
#define pq(a) priority_queue<a>
#define qq(a) queue<a>
#define ss(a) set<a>
#define mm(a, b) map<a, b>
#define ump(a, b) unordered_map<a, b>
#define ANDROID                   \
    ios_base::sync_with_stdio(0); \
    cin.tie(0);                   \
    cout.tie(0);
#define elif else if
#define endl "\n"
#define allc(a) begin(a), end(a)
#define all(a) a, a + sizeof(a) / sizeof(a[0])
#define pb push_back
#define logi(a) __lg(a)
#define sqrt(a) sqrtl(a)
#define mpr make_pair
#define ins insert
using namespace std;
using namespace __gnu_pbds;
using namespace __cxx11;
typedef char chr;
typedef basic_string<chr> str;
template <typename T, typename key = less<T>>
using ordered_set = tree<T, null_type, key, rb_tree_tag, tree_order_statistics_node_update>;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());

void solve()
{
    ll n, d, m;
    cin >> n >> d >> m;
    ll cnt[n], a[n];
    memset(cnt, 0, sizeof(cnt));
    for (ll i = 0, x; i < m; i++)
        cin >> x, cnt[--x]++;
    memcpy(a, cnt, sizeof(a));
    ll l = 1, r = m, ans = m;
    while (l <= r)
    {
        ll mid = (l + r) >> 1, ptr = 0;
        bool ok = true;
        memcpy(cnt, a, sizeof(a));
        for (ll i = 0; i < n; i++)
        {
            for (ll j = 0; j < mid and ptr < n; j++)
            {
                while (ptr < n and !cnt[ptr])
                    ptr++;
                if (ptr < n)
                    cnt[ptr]--;
            }
            if (i >= d and cnt[i - d])
            {
                ok = false;
                break;
            }
        }
        if (ok)
            r = mid - 1, ans = mid;
        else
            l = mid + 1;
    }
    ll ptr = 0;
    cout << ans << endl;
    memcpy(cnt, a, sizeof(a));
    for (ll i = 0; i < n; i++)
        {
            for (ll j = 0; j < ans and ptr < n; j++)
            {
                while (ptr < n and !cnt[ptr])
                    ptr++;
                if (ptr < n)
                    cnt[ptr]--, cout << ptr + 1 << " ";
            }
            cout << "0\n";
        }
}

/*

*/
int main()
{
    ANDROID
    // precomp();
    ll t = 1;
    // cin >> t;
    for (ll i = 1; i <= t; i++)
        // cout << "Case #" << i << ": ",
        solve();
    cerr << "\nTime elapsed : " << clock() * 1000.0 / CLOCKS_PER_SEC << " ms\n";
}
# Verdict Execution time Memory Grader output
1 Incorrect 21 ms 1108 KB Output isn't correct
2 Incorrect 13 ms 1032 KB Output isn't correct
3 Incorrect 12 ms 1040 KB Output isn't correct
4 Incorrect 12 ms 980 KB Output isn't correct
5 Incorrect 13 ms 1016 KB Output isn't correct
6 Incorrect 13 ms 980 KB Output isn't correct
7 Incorrect 12 ms 1032 KB Output isn't correct
8 Incorrect 12 ms 1060 KB Output isn't correct
9 Partially correct 21 ms 2496 KB Partially correct
10 Partially correct 27 ms 2516 KB Partially correct
11 Partially correct 15 ms 1104 KB Partially correct
12 Partially correct 31 ms 1744 KB Partially correct
13 Partially correct 56 ms 2620 KB Partially correct
14 Partially correct 65 ms 4292 KB Partially correct
15 Incorrect 71 ms 4148 KB Output isn't correct
16 Partially correct 112 ms 6276 KB Partially correct
17 Partially correct 114 ms 7160 KB Partially correct
18 Partially correct 121 ms 6564 KB Partially correct
19 Partially correct 138 ms 8948 KB Partially correct
20 Partially correct 111 ms 7224 KB Partially correct