#include <iostream>
#include <math.h>
#include <vector>
#include <string>
#include <algorithm>
#include <queue>
#include <stack>
#include <map>
#include <cstring>
#include <iomanip>
#include <stdio.h>
#include <unordered_map>
#include <bitset>
#include <tuple>
using namespace std;
using ll = long long;
using pii = pair<int,int>;
using piii = tuple<int,int,int>;
#define endl '\n'
#define f first
#define s second
int n,m,k;
vector<pii> vc;
int main(){
cin >> n >> m >> k;
for(int i{1};i <= k;i++){
int g;cin >> g;
vc.emplace_back(g,i);
}
sort(vc.begin(),vc.end());
int ans = 0;
for(int i{1};i <= n-m;i++){
int cnt = upper_bound(vc.begin(),vc.end(),make_pair(i,(int)1e9))-vc.begin();
//cout << i << " " << cnt << endl;
if(cnt % (i+m)) ans = max(ans,cnt/(i+m) + 1);
else ans = max(ans,cnt/(i+m));
}
cout << ans << endl;
int ind = 0;
for(int i{};i < n;i++){
for(int j{};j < ans;j++){
if(ind < k) cout << vc[ind].s << " ",ind++;
else break;
}
cout << 0 << endl;
}
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |