Submission
Status:
[PPPPPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: tha_smith
Problemset: การจัดแนวข้อความ
Language: cpp
Time: 0.004 second
Submitted On: 2026-03-07 16:26:17
#include <bits/stdc++.h>
using namespace std;
int main() {
ios_base::sync_with_stdio(0),cin.tie(0);
int N,M,cnt=0;;
cin >> N >> M;
vector<string> W(N),w;
for(int i=0; i<N; i++)
cin >> W[i];
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 << ' ';
}
}
}