Submission
Status:
[PPPP-SSSSSSSSSSSSS]
Subtask/Task Score:
{0/100}
Score: 0
User: hyyh
Problemset: การจัดแนวข้อความ
Language: cpp
Time: 0.002 second
Submitted On: 2026-01-24 13:05:24
#include <iostream>
#include <math.h>
#include <vector>
#include <string>
#include <algorithm>
#include <queue>
#include <stack>
#include <map>
#include <cstring>
#include <iomanip>
#include <set>
#include <bitset>
using namespace std;
using ll = long long;
using pii = pair<int,int>;
using piii = tuple<int,int,int>;
using piiii = tuple<int,int,int,int>;
#define endl '\n'
#define f first
#define s second
int main(){
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int n,m;cin >> n >> m;
vector<pii> sum = {{0,0}};
vector<string> vc;
for(int i = 0;i < n;i++){
string a;cin >> a;
if(sum.back().f + sum.back().s + a.size() > m){
sum.emplace_back(a.size(),1);
}
else{
sum.back().f += a.size();
sum.back().s += 1;
}
vc.emplace_back(a);
}
int cur = 0;
for(auto k:sum){
int left1 = m-k.f;
int left2 = k.s;
if(left2 == 1){
cout << vc[cur];
for(int j = 0;j < left1;j++){
cout << " ";
}
cur++;
}
else if(k == sum.back()){
for(int i = 0;i < k.s;i++){
if(left1){
cout << vc[cur] << " ";
left1--;
}
cur++;
}
for(int i = 0;i < left1;i++) cout << " ";
}
else{
for(int i = 0;i < k.s;i++){
cout << vc[cur];
//cout << " " << left1 << " " << left2 << " ";
for(int j = 0;j < ceil(((float)left1)/((float)left2-1));j++){
cout << " ";
}
left1 -= ceil(((float)left1)/((float)left2-1));
left2--;
cur++;
}
}
cout << endl;
}
}