#define ll long long
#include <bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(0);
cout.tie(0);
cin.tie(0);
int n,d,j; cin >> n >> d >> j;
vector<vector<int>> nums(n);
int num;
for (int i =0; i < j; i++){
cin >> num;
nums[num-1].push_back(i);
}
int l = 1, r = j, m;
bool a;
int sol = j;
queue<int> q;
while (l <= r){
m = (l+r)/2;
a = true;
q = {};
for (int i = 0; i < n; i++){
for (int x = 0; x < nums[i].size(); x++){
q.push(nums[i][x]+d);
}
for (int f = 0; f < m; f++){
if (q.empty()){break;}
if (q.front() < i){a=false;}
q.pop();
}
}
if (a){
sol = m;
r = m-1;
}
else {
l = m+1;
}
}
q = {};
cout << sol << "\n";
for (int i = 0; i < n; i++){
for (int x = 0; x < nums[i].size(); x++){
q.push(nums[i][x]);
}
for (int f = 0; f < m; f++){
if (q.empty()){break;}
cout << q.front()+1 << " ";
q.pop();
}
cout << "0\n";
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |