#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int nMax=1e6+5,MOD=1e9+7;
int t,n,m,k,z,a,b,c,d,x,y,cnt,ans,rez,sum,poz,st,dr;
int v[nMax];
bool ok;
char ch;
string s;
map<int,int>mp;
vector<int>adj[nMax];
bool check(int val)
{
int day=1;
cnt=0;
for(int i=1; i<=n-d; ++i)
{
if(i>day)
day=i,cnt=0;
for(auto it : adj[i])
{
if(i+d<day)
return 0;
cnt++;
if(cnt==val)
day++,cnt=0;
}
}
return 1;
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
cin>>n>>d>>m;
for(int i=1; i<=m; ++i)
cin>>v[i],adj[v[i]].push_back(i);
st=1;
dr=m;
while(st<=dr)
{
int mid=st+(dr-st)/2;
if(check(mid))
ans=mid,dr=mid-1;
else
st=mid+1;
}
cout<<ans<<'\n';
int day=1;
cnt=0;
for(int i=1;i<=n;++i)
{
if(i>day)
cout<<0<<'\n',day=i,cnt=0;
for(auto it : adj[i])
{
cout<<it<<" ";
cnt++;
if(cnt==ans)
day++,cnt=0,cout<<0<<'\n';
}
}
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |