競技プログラミング用 知識集積所

ABC398A - Doors in the Center

最終更新:

sport_programming

- view
管理者のみ編集可


問題


必要知識


考え方

まずは入力内容を確認。
入力内容は整数が1つなので、int型の変数1つを用意してcinで入力を受け取る。

まず、文字列のベースを作る。
真ん中あたりの1文字または2文字を除けば全て'-'なので、とりあえず'-'ばっかりn文字の文字列を用意しておくと楽になりそうと考える。

あとは、対応する文字を'='にすればいい。
回文になるようにしろということは、奇数ならば真ん中の1文字、偶数なら真ん中の2文字を変えればいい。
値によってやることを変えたいのでif分岐を用意する。
if (n%2==1) {
  奇数の場合のコード
} else {
  偶数の場合のコード
}
(慣れると、if(n%2)とだけ書くようになる)

文字数が0から始まることに注意すると、'='に変えるべき場所は、奇数の場合はn/2番目、偶数の場合はn/2-1番目とn/2番目ということなる。
つまり、奇数の場合は
result.at(n/2) = '=';
偶数の場合は
result.at(n/2-1) = '=';
result.at(n/2) = '=';
を実行させる。

最後に、忘れずにcoutで出力しておしまい。

解答例


注意点


別解

ウィキ募集バナー