Submission
Status:
[PPPPPPPPPPPPPPPPPP]
Score: 100
User: achinhchin
Problemset: การจัดแนวข้อความ
Language: cpp
Time: 0.002 second
Submitted On: 2025-04-01 18:55:29
#include<bits/stdc++.h>
#include <cstdio>
#include<iostream>
#include <string>
#include <vector>
using namespace std;
typedef long long l;
queue<string> b;
string a,t;
l w,i,cs,ci,j,ts,k,n;
bool e;
bool N() {return i==a.size()-1;}
int main() {
cin.tie(nullptr)->sync_with_stdio(false); cin>>n>>w;
for(;i<n;i++)cin>>t,a+=t+' '; a.pop_back(),t.clear();
for(i=0;i<a.size();i++) {
if(a[i]!=' ') t.push_back(a[i]);
if(a[i]==' '||N()){
b.push(t),cs+=t.size(),ci++;
if(cs+ci-1>w){ts=w-cs+t.size(),k=0;
e=false;if (b.size()==2) e=true;
while(b.size()>1){
cout<<b.front(); if(b.size()>2) for(j=0;j<ts/(ci-2)+(k<ts%(ci-2));j++)cout<<' ';
if(e) for(j=0;j<w-b.front().size();j++)cout<<' ';
cs-=b.front().size(),b.pop(),k++;
}cout<<'\n',ci=1;
}t.clear();
}
}while(!b.empty()){cout<<b.front()<<' ',b.pop();}
}