比赛 防止浮躁的小练习v0.7 评测结果 RRRRRRRRRRRRRR
题目名称 子序列 最终得分 0
用户昵称 Hexฏ๎๎๎๎๎๎๎๎๎ۣۣۣ 运行时间 0.027 s
代码语言 C++ 内存使用 9.59 MiB
提交时间 2016-10-27 19:28:12
显示代码纯文本
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>

using namespace std;

char c[100001],c1[55];
int a[26][100005]={0};
int n;

void In(){
	scanf("%s",c);
	int i,j,k,l=strlen(c);
	for(i=0;i<l;i++)
	  {
	  	a[ c[i]-'a' ][0]++;
	  	a[ c[i]-'a' ][ a[c[i]-'a'][0] ]=i;
	  }
}

int main(int argc,char ** argv){
	In();
	int i,j,k=-1,l;
	for(i=0;i<strlen(c);i++)
	  {
	  	for(j=1;j<=a[c[i]-'a'][0];j++)
	  	  {
	  	  	cout<<a[c[i]-'a'][j]<<" ";
		  }
		cout<<endl;
	  }
	bool f=true;
	scanf("%d",&n);
	while( n-- )
	  {
	  	scanf("%s",c1);
	  	l=strlen(c1);
//	  	cout<<c1<<endl;	
		k=-1;
		for(i=0;i<l;i++)
		  {
		  	f=false;
		  	for( j=1; j <= a[c1[i]-'a'][0] ; j++ )
		  	  if( a[c1[i]-'a'][j] > k )
		  	    {
		  	      k=a[c1[i]-'a'][j];
		  	      f=true;
		  	      break;
				}
			if( f == false )
			  {
			  	cout<<"No"<<endl;
			  	break;
			  }
		  }
		if( f != false )
		  cout<<"Yes"<<endl;
	  }
	return 0;
}
/*
subsequence
2
sequence
sbseee
*/