首页 > 代码库 > codeforces Div.2 B.Suffix Structures

codeforces Div.2 B.Suffix Structures

题意是给我们两个字符串,再在第一个字符串中找第二个,

给了我们两种方法,一:在第一个字符串删掉一些字符后得到第二个字符串;

二:在第一个字符串中改变一些字符的先后顺序得到字符串二;

如果只用第一种方法输出:   automaton;

只用第二种输出:array

两种都用输出:both;

找不到输出:need tree;

直接找就行,,,,,,水

#include<stdio.h>
#include<string.h>
using namespace std;
int main()
{
    char a[101],b[101];
    int s[101];
    int c,d,i,j;
    scanf("%s",a);
    scanf("%s",b);
    c=strlen(a);
    d=strlen(b);
    for(i=0,j=0;i<c;i++)
    {
        if(a[i]==b[j])
       {
           j++;
       }
       if(j==d)
        {printf("automaton\n");return 0;}
    }
    int e=0;
    memset(s,0,sizeof(s));
    for(int i=0;i<d;i++)
    {
        for(int j=0;j<c;j++)
        {
            if(s[j]!=1){
            if( b[i]==a[j])
            {
                s[j]=1;
                e++;
                break;
            }
            }
        }
    }
    if(e==d)
    {
        if(c==d)
            {printf("array\n");}
        if(c>d)
            printf("both\n");
    }
    else
    printf("need tree\n");
    return 0;
}