Submission

Status:
[-SSSSSSSSSSSSSSSSS]

Score: 0

User: achinhchin

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

Language: cpp

Time: 0.002 second

Submitted On: 2025-04-01 18:44:05

#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;
bool e;
bool N() {return i==a.size()-1;}

int main() {
  cin.tie(nullptr)->sync_with_stdio(false); cin>>w;cin.ignore(); getline(cin,a);
  for(;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++;
        }ci=1;
      }t.clear();
    }
  }while(!b.empty()){cout<<b.front()<<' ',b.pop();}
  for(i=0;i<w-cs-ci;i++)cout<<' ';
}