今日勉強したことを
つらつらと
logo

nomura2020_bの解説

2020/05/30 14:05

nomura2020_bに参加してきましたが、微妙な問題にはまってしまって脱力中です。

最初問題文読んだときに、全部 D に置き換えれば終わりでは?と思ったのですが、さすがに違うパターンがあるかと色々試した結果、そうでした・・

あまりにもポスドクが可愛そうなので、ポスドクをある程度増やして AC 取れるコードです。

#include <bits/stdc++.h>
using namespace std;
#define REPLACE(_str, _ptn, _replacement) regex_replace(_str, regex(_ptn), _replacement)

string s;
int main() {
    cin >> s;
    s = REPLACE(s, "P\\?", "PD");
    s = REPLACE(s, "\\?D", "PD");
    s = REPLACE(s, "\\?\\?", "PD");
    s = REPLACE(s, "\\?", "D");
    cout << s;
    return 0;
}

© 2023 simodake