AtCoder Beginner Contest 159

21時半過ぎには子供たちが寝てくれたので22時頃から参加できました。

ただし、今回はなんとA問題すら解けず…。このコンテスト続けるほど精神的を削られていきます…。

解答をみてしっかり復習しなければいけないのですが、どうも最近の問題は難しくなってきた気がしていて解答をみてもよくわからなかったりします。「お前コーディング力ねーからな!」と言われているようでプログラマーになった頃を思い出しますが、もう5年もやっているのに…。という意味では今のほうがやられます。

 

ということでA問題よりB問題のほうが解けそうだったのでB問題の解答です。ただしこの答えはWAでしたので誤った解答になりますのであしからず…。

#include <iostream>
#include <string>
#include <string>
#include <algorithm>

using namespace std;

int main()
{
    string S;

    cin >> S;

    string Answer = "No";

    int N = S.size();

    int AS = (N - 1) / 2;
    int BS = (N + 3) / 2;

    string A = S.substr(0, AS);
    string B = S.substr(BS - 1);

    string AA = S.substr(0, AS);
    string BB = S.substr(BS - 1);

    // 反転
    reverse(AA.begin(), AA.end());
    reverse(BB.begin(), BB.end());

    if (A == AA && B == BB)
    {

        Answer = "Yes";
    }

    cout << Answer << endl;
}

 

今回のコンテストをやってみて、C++じゃなくてもいいような気がしてきました。実行速度が速いということと、C++の勉強も兼ねて使っていますが、結局速度を気にする問題までいけてないし、C++の書き方を調べて時間がとられるので、使い慣れた言語で問題を考える時間を多くしたほうがいいような気がしてきました…。

しかしコンテストとは言え変数名をもっといい名称にしたい…。

soon
  • soon
  • 1986年生まれのjavaプログラマー。28歳の時に7年働いた販売士からプログラマーに転職をする。常駐先を転々としながら日々生きています。