#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
#define MOD 998244353
const int N = 1e6 + 5;
int n, m, d;
pair<int, int> a[N];
void solve()
{
cin >> n >> d >> m;
for (int i = 1; i <= m; i++)
{
cin >> a[i].first;
a[i].second = i;
}
a[m + 1].first = 1e9;
sort(a + 1, a + m + 1);
int l = 0, r = m;
while (r - l > 1)
{
int mid = (l + r) / 2, p = 1;
for (int i = 1; i <= n; i++)
{
if (a[p].first + d < i)
{
break;
}
int cnt = 0;
while (cnt < mid and a[p].first <= i)
{
cnt++;
p++;
}
}
if (p > m)
{
r = mid;
}
else
{
l = mid;
}
}
cout << r << endl;
int p = 1;
for (int i = 1; i <= n; i++)
{
int cnt = 0;
while (cnt < r and a[p].first <= i)
{
cnt++;
cout << a[p].second << " ";
p++;
}
cout << 0 << endl;
}
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
ll t = 1;
// cin >> t;
// cout << fixed << setprecision(12);
for (ll i = 1; i <= t; i++)
{
solve();
}
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |