Submission

Status:

[PPPPPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: asamarum70

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

Language: cpp

Time: 0.003 second

Submitted On: 2025-12-12 01:10:26

#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define fr(i,a,b,c) for(int i = a;i<b;i+=c)
#define fre(i,a,b,c) for(int i = a;i>=b;i-=c)
#define fs first
#define sc second
#define all(a) a.begin(),a.end()
#define IINF 2000000005
#define LINF 1000000000000000005
#define MOD 1000000007
#define str string
#define endl '\n'
using pii = pair<int,int>;
using pll = pair<ll,ll>;
using tiii = tuple<int,int,int>;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
int uid(int a, int b) { return uniform_int_distribution<int>(a,b)(rng); }
ll uld(ll a, ll b) { return uniform_int_distribution<ll>(a,b)(rng); }

int main(){
    ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
    int n,m;cin >> n >> m;
    vector<str> a(n);
    fr(i,0,n,1)cin >> a[i];
    vector<vector<str>> p;
    vector<int> v,s;
    int l = 0;
    v.push_back(a[l].size());
    p.push_back({});
    p[l].push_back(a[l]);
    s.push_back(1);
    fr(i,1,n,1){
        // cout << (m - (v.back() + (int)a[i].size()))/s.back() << endl;
        // cout << v.back() << ' ' << a[i].size() << ' ' << s.back() << endl;
        if((m - (v.back() + (int)a[i].size()))/(s.back()) > 0){
            p[l].push_back(a[i]);
            v[l]+=a[i].size();
            s[l]++;
        }else{
            p.push_back({});
            l++;
            p[l].push_back(a[i]);
            v.push_back(a[i].size());
            s.push_back(1);
        }
    }
    fr(i,0,p.size() - 1,1){
        if(s[i] == 1){
            cout << p[i][0] << endl;
            continue;
        }
        int w = (m - v[i])/(s[i] - 1);
        int r = (m - v[i])%(s[i] - 1);
        // cout << p[i][0];
        // fr(j,0,w + m - (w * (s[i] - 1) + v[i]),1)cout << ' ';
        fr(j,0,p[i].size(),1){
            cout << p[i][j];
            fr(k,0,w,1)cout << ' ';
            if(j < r)cout << ' ';
        }
        cout << endl;
    }
    fr(i,0,p[p.size() - 1].size(),1){
        cout << p[p.size() - 1][i] << ' ';
    }
}