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;
}
本文介绍了一个简单的程序,用于检查玩家是否遵守了Shiritori游戏的规则。该程序接收一系列单词作为输入,并验证这些单词是否符合游戏的要求:每个单词必须以之前单词的最后一个字符开始,并且所有单词都不能重复。
408

被折叠的 条评论
为什么被折叠?



