実行時間制限: 2 sec / メモリ制限: 1024 MB / Difficulty: 27
問題概要
長さ の正整数列 を使って、次のように文字列 を生成した。
|
から始める。- の順に、次の操作を行う。
- の末尾に
-
を 個追加する。 - その後、 の末尾に
|
を1個追加する。
- の末尾に
ここで、生成された文字列 が与えられるので、正整数列 を復元せよ。
制約
- [tex: 3 \leq |S| \leq 100
考察
の生成方法を逆算すればよい。具体的には、
- から順に各文字を見ていく。
-
ならば、|
となるまでカウンターを増やす。その後カウンターの数字を出力し、 に戻す。
コード
#include <bits/stdc++.h> using namespace std; // ======================================== // int main() { string S; cin >> S; vector<int> A; rep(i, 1, S.size()) { int cnt = 0; while (S[i] != '|') { cnt++; i++; } A.push_back(cnt); } rep(i, 0, A.size()) { cout << A[i] << " "; } cout << endl; }
実装時間: 5分以内