Official
B - Center Alignment Editorial
by
B - Center Alignment Editorial
by
KumaTachiRen
文字列 \(S\) の長さを \(|S|\) で表すと、\(T_i\) についての条件における \(k\) の値は \(k=\dfrac{m-|S_i|}{2}\) となります。
実際に \(T_i\) を求める方法としては「\(S_i\) の前後に . を付け足すことを \(k\) 回繰り返す」や「. を \(k\) 個結合した文字列を利用する」などが考えられます。
実装例(C++)
#include <bits/stdc++.h>
using namespace std;
int main() {
int N;
cin >> N;
vector<string> S(N);
for (int i = 0; i < N; i++) cin >> S[i];
int m = 0;
for (int i = 0; i < N; i++) m = max(m, (int)S[i].size());
for (int i = 0; i < N; i++) {
int k = (m - S[i].size()) / 2;
string T = string(k, '.') + S[i] + string(k, '.');
cout << T << "\n";
}
}
実装例(Python)
N = int(input())
S = [input() for _ in range(N)]
m = max(len(s) for s in S)
for s in S:
k = (m - len(s)) // 2
t = ("." * k) + s + ("." * k)
print(t)
posted:
last update:
