Time limit : 2sec / Memory limit : 1024MB
Score : 200 points
Problem Statement
Takahashi is practicing shiritori alone again today.
Shiritori is a game as follows:
- In the first turn, a player announces any one word.
- In the subsequent turns, a player announces a word that satisfies the following conditions:
- That word is not announced before.
- The first character of that word is the same as the last character of the last word announced.
In this game, he is practicing to announce as many words as possible in ten seconds.
You are given the number of words Takahashi announced, N, and the i-th word he announced, Wi, for each i. Determine if the rules of shiritori was observed, that is, every word announced by him satisfied the conditions.
Constraints
- N is an integer satisfying 2≤N≤100.
- Wi is a string of length between 1 and 10 (inclusive) consisting of lowercase English letters.
Input
Input is given from Standard Input in the following format:
N W1 W2 : WN
Output
If every word announced by Takahashi satisfied the conditions, print Yes
; otherwise, print No
.
Sample Input 1
4 hoge english hoge enigma
Sample Output 1
No
As hoge
is announced multiple times, the rules of shiritori was not observed.
Sample Input 2
9 basic c cpp php python nadesico ocaml lua assembly
Sample Output 2
Yes
Sample Input 3
Copy
8 a aa aaa aaaa aaaaa aaaaaa aaa aaaaaaa
Sample Output 3
No
Sample Input 4
3 abc arc agc
Sample Output 4
No
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
const int N=100+10;
char a[N][15];
int main()
{
int n;
bool pd=true;
cin>>n;
memset(a,0,sizeof(a));
for(int i=0;i<n;i++)
cin>>a[i];
for(int i=0;i<n-1;i++)
{
int l=strlen(a[i]);
if(a[i][l-1]!=a[i+1][0])
{
cout<<"No";
pd=false;
break;
}
for(int j=i+1;j<n;j++)
{
if(strcmp(a[i],a[j])==0)
{
cout<<"No";
pd=false;
break;
}
}
}
if(pd)
cout<<"Yes";
return 0;
}