P9946 题解

用数组 \(a\) 存储单词,数组 \(b\) 存储对应单词的长度,然后用一个变量 \(cnt\) 循环加上 \(b_i\),如果此时 \(cnt \le k\),输出 \(a_i\);否则,换行输出 \(a_i\),并清空 \(cnt\),再加上此时的 \(b_i\)

#include<bits/stdc++.h>

using namespace std;

string a[105];
int n, k, b[1145141], cnt = 0;

int main() {
    
    cin >> n >> k;
    for (int i = 1; i <= n; ++i) {
        cin >> a[i];
        b[i] = a[i].size();
    }
    for (int i = 1; i <= n; ++i) {
        cnt += b[i];
        if (cnt <= k) cout << a[i] << ' ';
        else {
            cout << '\n' << a[i] << ' ';
            cnt = 0;
            cnt += b[i];
        }
    }
    
    return 0;
    
}
posted @ 2023-12-20 19:15  FurippuWRY  阅读(44)  评论(0)    收藏  举报