Submission
Status:
[PPPPPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: tha_smith
Problemset: การจัดแนวข้อความ
Language: cpp
Time: 0.003 second
Submitted On: 2026-02-27 19:54:18
#include <bits/stdc++.h>
using namespace std;
int main() {
ios_base::sync_with_stdio(0),cin.tie(0);
int N,M;
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-=1;
int c=M-charcnt;
int c0=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<c0)+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 << ' ';
}
}
}
}