Submission

Status:

[PP-SSSSSSSSSSSSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: 998244353

Problemset: การจัดแนวข้อความ

Language: cpp

Time: 0.004 second

Submitted On: 2025-10-31 20:56:23

#include <bits/stdc++.h>
using namespace std;

int32_t main() {
	cin.tie(NULL)->sync_with_stdio(false);
	// input
	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];
		  } else {
		    int charcnt=0;
  			for (auto j:w) {
  				charcnt+=j.size()+1;
  			}
  			charcnt-=1;
  			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++;
  			}
		  }
			cout << '\n';
			cnt=W[i].size();
			w.clear();
			w.push_back(W[i]);
		} 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 << " ";
			}
		}
	}
}