Codeforces868A Bark to Unlock

本文介绍了一种通过模拟算法实现特定字符串匹配的手机解锁方案。敌对者Kashtanka尝试通过连续发出不同的两字母声音来匹配目标密码,进而解锁手机。文章详细探讨了算法的具体实现,并提供了完整的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

标签:模拟

As technologies develop, manufacturers aremaking the process of unlocking a phone as user-friendly as possible. To unlockits new phone, Arkady's pet dog Mu-mu has to bark the password once. The phonerepresents a password as a string of two lowercase English letters.

Mu-mu's enemy Kashtanka wants to unlockMu-mu's phone to steal some sensible information, but it can only bark ndistinct words, each of which can be represented as a string of two lowercaseEnglish letters. Kashtanka wants to bark several words (not necessarilydistinct) one after another to pronounce a string containing the password as asubstring. Tell if it's possible to unlock the phone in this way, or not.

Input

The first line contains two lowercaseEnglish letters — the password on the phone.

The second line contains single integer n(1 ≤ n ≤ 100) — thenumber of words Kashtanka knows.

The next n lines contain twolowercase English letters each, representing the words Kashtanka knows. Thewords are guaranteed to be distinct.

Output

Print "YES" if Kashtanka can barkseveral words in a line forming a string containing the password, and "NO"otherwise.

You can print each letter in arbitrary case(upper or lower).

Examples

Input

ya
4
ah
oy
to
ha

Output

YES

Input

hp
2
ht
tp

Output

NO

Input

ah
1
ha

Output

YES

Note

In the first example the password is "ya",and Kashtanka can bark "oy" and then "ah", and then "ha"to form the string "oyahha" which contains the password. So, theanswer is "YES".

In the second example Kashtanka can'tproduce a string containing password as a substring. Note that it can bark"ht" and then "tp" producing "http", but itdoesn't contain the password "hp" as a substring.

In the third example the string "hahahaha"contains "ah" as a substring.

模拟大水题

Code

#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define dep(i,a,b) for(int i=a;i>=b;i--)
#define mem(x,num) memset(x,num,sizeof x)
using namespace std;

int n;
char s[500],t[500];
char head[500],tail[500];

int main()
{
    cin>>s>>n;
	rep(i,1,n){
	    cin>>t;
		if((t[0]==s[0])&&(t[1]==s[1])){cout<<"YES\n";return 0;}
	    tail[t[0]]=true;
	    head[t[1]]=true;
	}
	if(head[s[0]]&&tail[s[1]]){cout<<"YES\n";return 0;}
	cout<<"NO\n";
	return 0;
}


### 编程问题或教程从0到y的获取方法 对于希望在Codeforces平台上找到难度范围从简单至特定等级(标记为`y`)的问题或教程,可以采取多种策略来实现这一目标。Codeforces提供了一个强大的过滤器功能,允许用户基于标签、解决次数以及题目难度筛选问题。 #### 使用Codeforces内置工具寻找合适的问题 通过访问Codeforces的问题集页面并应用适当的选择条件,能够有效地定位所需资源。具体而言,在问题集合页面中存在一个高级搜索选项,支持按照多个维度进行细化检索: - **按标签分类**:可以选择诸如“constructive algorithms”这样的主题标签[^1]。 - **依据难度区间挑选**:设定下限为入门级(即 rating 800),上限则根据个人需求调整至指定值`y`。例如,如果想要覆盖所有不超过rating 1900的问题,则应在此处输入相应数值作为最大边界。 ```python import requests from bs4 import BeautifulSoup def fetch_problems_by_difficulty(min_rating, max_rating): url = f"https://codeforces.com/problemset/page/1?difficulty={min_rating}-{max_rating}" response = requests.get(url) soup = BeautifulSoup(response.text, "html.parser") problem_list = [] for row in soup.select(".problems tr"): columns = row.find_all('td') if len(columns)>0: name_cell = columns[0].find("a", href=True)['href'] title = columns[0].text.strip() difficulty = int(columns[-1].text) problem_info = { 'title': title, 'link': f'https://codeforces.com{name_cell}', 'difficulty': difficulty } problem_list.append(problem_info) return problem_list[:5] # Example usage with min_rating set to 800 and max_rating as variable y problem_set = fetch_problems_by_difficulty(800, y) for p in problem_set: print(f"{p['title']} ({p['difficulty']}) [{p['link']}]") ``` 此Python脚本展示了如何利用BeautifulSoup库解析HTML文档结构,并从中提取满足给定难度区间的前五个编程挑战的信息。 #### 探索高质量的学习资料 除了直接解决问题外,学习者还可以借助一系列精心编写的指南和文章加深理解。这些材料通常由经验丰富的竞赛选手撰写,旨在帮助新手逐步掌握必要的技能和技术要点[^2][^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值