Submission
Status:
[PPPPPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: vachirasawin
Problemset: การจัดแนวข้อความ
Language: cpp
Time: 0.002 second
Submitted On: 2026-03-13 03:00:22
// grader-chan
// c2_st66_justify.cpp | c2_st66_justify
#include <bits/stdc++.h>
using namespace std;
int N, M;
pair<string, int> sentence[200];
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin >> N >> M;
vector<string> W(N),w;
for (int i = 0; i < N; i++) cin >> W[i];
int cnt = 0;
for (int i = 0; i < N; i++) {
if (cnt == 0) {
cnt += W[i].size();
} else {
cnt += W[i].size() + 1;
}
if (cnt > M) {
if (w.size() == 1) {
cout << w[0];
cnt = W[i].size();
w.clear();
w.push_back(W[i]);
} else {
int charcnt = 0;
for (auto j:w) charcnt += j.size() + 1;
charcnt--;
int c = M - charcnt;
int c_0 = c % (w.size() - 1);
cnt=0;
for (auto j:w) {
cout << j;
if (cnt != w.size() - 1) {
for (int p = 0; p < c / (w.size() - 1) + (cnt < c_0) + 1; p++) cout << " ";
}
cnt++;
}
cnt = W[i].size();
w.clear();
w.push_back(W[i]);
}
cout << '\n';
} else {
w.push_back(W[i]);
}
}
if (!w.empty()) {
for (int i = 0; i < w.size(); i++) {
cout << w[i];
if (i != w.size() - 1) cout << " ";
}
}
return 0;
}