頭良くなりたい人

文系大学生shadeのブログです。競技プログラミングや人文学の話題,受験ネタなど。

ABC109 B - Shiritori

問題はこちら atcoder.jp

方針

「その単語はまだ発言していない単語である」ことと「その単語の先頭の文字は直前に発言した単語の末尾の文字と一致する」ことを確認しています。計算量が少ないので特に工夫はしていません。

コード

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

int main(){
    int n;
    cin>>n;

    vector<string> w(n);
    for(int i=0; i<n; i++){
        cin>>w[i];
    }

    bool judge=true;

    for(int i=1; i<n; i++){
        if(w[i-1][w[i-1].size()-1]!=w[i][0]){
            judge=false;
        }
        for(int j=0; j<i; j++){
            if(w[i]==w[j]){
                judge=false;
            }
        }
    }

    cout<<(judge==true ? "Yes" : "No")<<endl;
}