Submission
Status:
[PPPPPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: Gump2011
Problemset: การจัดแนวข้อความ
Language: cpp
Time: 0.002 second
Submitted On: 2026-03-08 18:20:53
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(0), cin.tie(0);
int n, m;
cin >> n >> m;
vector<string> s(n);
for(int i=0;i<n;i++){
cin >> s[i];
}
int i = 0;
while(i < n){
int len = s[i].size();
int j = i + 1;
while(j < n && len + 1 + s[j].size() <= m){
len += 1 + s[j].size();
j++;
}
int num_s = j - i;
int tt = 0;
for(int k = i; k < j; k++){
tt += s[k].size();
}
string ans;
if(j == n || num_s == 1){
ans += s[i];
for(int k=i+1;k<j;k++){
ans += " " + s[k];
}
ans += string(m - ans.size(), ' ');
}else{
int need = m - tt;
int bwn = need / (num_s - 1);
int ex = need % (num_s - 1);
for(int k=i;k<j;k++){
ans += s[k];
if(k < j - 1){
int sp = bwn + (ex-- > 0 ? 1 : 0);
ans += string(sp, ' ');
}
}
}
cout << ans << '\n';
i = j;
}
return 0;
}