Yuulis.log

トンネルを抜けるとそこは参照エラーであった。

【AtCoder】ABC 364 A - Glutton Takahashi | 茶コーダーが解くAtCoder

atcoder.jp

実行時間制限: 2 sec / メモリ制限: 1024 MB / Difficulty: 29

問題概要

高橋君はこれから  N 個の料理を食べようとしており、  i 番目に食べようとしている料理は  S_i =sweet ならば甘い料理、saltyならば塩辛い料理である。高橋君は甘い料理を2つ連続で食べてしまうとその後の料理が食べられなくなってしまう。このとき、高橋君が  N 個全ての料理を食べることができるかを判定せよ。

制約

  •  1 \leq N \leq 100

考察

ある整数  i \: (1 \leq i \leq N-2) について、  S_i = S_{i+1}=sweetのとき、高橋君は  i+2 個目以降の料理を食べられなくなってしまう。逆にそうでなければ全ての料理を食べることができる。

あとはfor文などで実装するだけ。

コード

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

#define rep(i, start, end) for (auto i = (start); (i) < (end); (i)++)

// ======================================== //

int main()
{
    int N;
    cin >> N;
    vector<string> S(N);
    rep(i, 0, N) cin >> S[i];

    rep(i, 0, N - 1)
    {
        if (S[i] == "sweet" && S[i + 1] == "sweet")
        {
            if (i != N - 2)
            {
                cout << "No" << endl;
                return 0;
            }
        }
    }

    cout << "Yes" << endl;
    return 0;
}

atcoder.jp

実装時間: 5分以内