Codeforces Round #302 (Div. 2) A. Set of Strings

来源:互联网 发布:mac机械键盘推荐 编辑:程序博客网 时间:2024/06/03 21:39

解:此题是一道字符串题,要求用指定数目的子串前后拼接构成一个整串,在拼接时需要保持每个子串首字母不一样,可以用大小为26的数组来标记每个子串的首字母,接下来再进行拼接判断即可。

#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;const int maxm=1e3+10;char s[maxm];int vis[maxm];int vit[maxm];int main(){    int n;    while(scanf("%d%s",&n,s)!=EOF)    {        memset(vis,0,sizeof(vis));        int cnt=0;        int len=strlen(s);        for(int i=0;i<len;i++)        {            if(cnt==n)                break;            if(!vis[s[i]-'0'])            {                vis[s[i]-'0']=1;                vit[cnt++]=i;            }        }        if(cnt!=n)        {            printf("NO\n");            continue;        }        printf("YES\n");        cnt=0;        for(int i=0;i<len;i++)        {            if(i==vit[cnt])            {                printf("\n");                cnt++;            }            printf("%c",s[i]);        }        printf("\n");    }    return 0;}


0 0