#include <bits/stdc++.h>
using namespace std;
#define fr first
#define sc second
const int mxn=1e6+5;
int n,m,d;
pair<int,int>a[mxn];
int main(){
cin>>n>>d>>m;
for(int i=1;i<=m;i++){
cin>>a[i].fr;
a[i].sc=i;
}
a[m+1].fr=1e9;
sort(a+1,a+m+1);
int l=0,r=m;
while(r-l>1){
//cout<<r<<" "<<l<<endl;
int mid=(l+r)/2,p=1;
for(int i=1;i<=n;i++){
if(a[p].fr+d<i){
break;
}
int cnt=0;
while(cnt<mid && a[p].fr<=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 && a[p].fr<=i){
cnt++;
cout<<a[p].sc<<" ";
p++;
}
cout<<0<<endl;
}
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
33 ms |
3164 KB |
Output is correct |
2 |
Correct |
34 ms |
3168 KB |
Output is correct |
3 |
Correct |
32 ms |
3180 KB |
Output is correct |
4 |
Correct |
32 ms |
3176 KB |
Output is correct |
5 |
Correct |
32 ms |
3164 KB |
Output is correct |
6 |
Correct |
33 ms |
3160 KB |
Output is correct |
7 |
Correct |
32 ms |
3156 KB |
Output is correct |
8 |
Correct |
35 ms |
3260 KB |
Output is correct |
9 |
Correct |
140 ms |
3428 KB |
Output is correct |
10 |
Correct |
144 ms |
3436 KB |
Output is correct |
11 |
Correct |
31 ms |
3160 KB |
Output is correct |
12 |
Correct |
66 ms |
4180 KB |
Output is correct |
13 |
Correct |
91 ms |
6484 KB |
Output is correct |
14 |
Correct |
143 ms |
7260 KB |
Output is correct |
15 |
Correct |
150 ms |
8040 KB |
Output is correct |
16 |
Correct |
208 ms |
10804 KB |
Output is correct |
17 |
Correct |
243 ms |
11348 KB |
Output is correct |
18 |
Correct |
254 ms |
12124 KB |
Output is correct |
19 |
Correct |
390 ms |
13964 KB |
Output is correct |
20 |
Correct |
276 ms |
11344 KB |
Output is correct |