けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

AtCoder ABC 257 A - A to Z String 2 (6Q, 灰色, 100 点)

文字列のいい感じの問題!

問題概要

文字 'A' を  N 個、'B' を  N 個、…、'Z' を  N 個、この順に繋げて得られる文字列の先頭から  X 番目の文字を求めてください。

制約

  •  1 \le N \le 100

考えたこと

実際に文字列を作り、その  X 番目にアクセスすればよい。

実際に文字列を作る部分は、次のようにできる。全体としては 2 重の for 文となる。

string res = "";
for (char c = 'A'; c <= 'Z'; c++) {
    res に文字 c を N 個付け足す;
}

コード

#include <bits/stdc++.h>
using namespace std;

int main() {
    int N, X;
    cin >> N >> X;
    
    string res = "";
    for (char c = 'A'; c <= 'Z'; c++) {
        // res に文字 c を N 個付け足す
        for (int i = 0; i < N; ++i) {
            res += c;
        }
    }
 
    // X 番目の文字を出力 (0 始まりなので res[X - 1] が答え)
    cout << res[X - 1] << endl;
}