#include using namespace std; #include #define int long long int N; vector B; int op(int a, int b) { if (B[a] <= B[b]) return a; return b; } int e() { return N; } main() { int H, T; cin >> N >> H >> T; vector A(N); for (int i = 0; i < N; i++) cin >> A[i]; vector R(N+1); for (int i = 0; i < N; i++) { R[i] = (H + A[i] - 1) / A[i]; } R[N] = 1e9; B = R; vector P(N); iota(P.begin(), P.end(), 0); atcoder::segtree seg(P); int all = 0; vector C(N, 0); for (int i = 0; i < T; i++) { int id = seg.all_prod(); C[id]++; int cnt = max(0LL, B[id] - all); all += cnt; B[id] = R[id] + all; seg.set(id, id); } for (int i = 0; i < N; i++) cout << C[i] << " "; cout << endl; }