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

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

AtCoder ABC 323 A - Weak Beats (7Q, 灰色, 100 点)

添字の偶奇によって処理を分岐する系

問題概要

0 と 1 のみからなる、16 文字の文字列  S が与えられる。

 S の左から偶数番目の文字がすべて '0' であるかどうかを判定せよ。

コード

先頭が S[0] なので、S[1], S[3], ..., S[15] の中に 1 があるかどうかを調べればよい (つまり、添字は奇数となる)。

  • 1 があったら:"No"
  • 1 がなかったら:"Yes"

を答える。for 文で添字を 2 ずつ増やしながら処理すると楽。

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

int main() {
    string S;
    cin >> S;
    
    bool all_zero = true;
    for (int i = 1; i < S.size(); i += 2) {
        if (S[i] == '1') all_zero = false;
    }
    
    if (all_zero) cout << "Yes" << endl;
    else cout << "No" << endl;
}