#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(0);
int n, d, m;
cin >> n >> d >> m;
vector <int> vec[n + 1];
vector <int> a(m + 1);
for (int i = 1; i <= m; i++) {
cin >> a[i];
vec[a[i]].push_back(i);
}
int l = 0, r = m;
while (r - l > 1) {
int mid = (l + r) >> 1;
queue <int> q;
int flag = 1;
for (int i = 1; i <= n; i++) {
for (auto x : vec[i]) q.push(i);
for (int j = 0; j < mid; j++)
{
if (q.empty()) break;
if (q.front() + m < i) {
flag = 0;
}
q.pop();
}
}
if (!q.empty()) flag = 0;
if (flag) r = mid;
else l = mid;
}
cout << r << endl;
queue <int> q;
for (int i = 1; i <= n; i++) {
for (auto x : vec[i]) q.push(x);
for (int j = 0; j < r; j++)
{
if (q.empty()) break;
cout << q.front() << " ";
q.pop();
}
cout << 0 << endl;
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |