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 22:45:13

#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 << ' ';
		}
	}
}