0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AtCoderログ:0112 - ABC 218 B

Last updated at Posted at 2021-09-14

問題

問題文

$1$ 以上 $26$ 以下の整数からなる長さ $26$ の数列 $P=(P_1,P_2, \ldots,P_{26})$ が与えられます。ここで、$P$ の要素は相異なることが保証されます。
以下の条件を満たす長さ $26$ の文字列 $S$ を出力してください。
・任意の $i~(1 \le i \le 26)$ について、$S$ の $i$ 文字目は辞書順で小さい方から $P_i$ 番目の英小文字である。

制約

・$1 \le P_i \le 26$
・$P_i \ne P_j~(i \ne j)$
・入力は全て整数である。

回答

回答1 (AC)

各 $i$ に対し、アルファベットの a から数えて $P_i$ 番目のアルファベットを表示することが求められています。アルファベット a を表す文字番号(ASCIIコード)に $P_i-1$ を足したものが、表示するアルファベットの文字番号となります。コードは以下のようになりました。cout で文字コードを変換する方法がわからなかったので、printf 文を使用しました。

abc218b-1.cpp
#include <bits/stdc++.h>
using namespace std;
 
int main() {
  int t;
  for ( int i=0; i<26; i++ ) {
    cin >> t;
    printf("%c",'a'+t-1);
  }
}

調べたこと

AtCoder の解説公式解説

回答1と同じ方針でしたが、cout を使っていました。勉強になります。

リンク

前後の記事

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?