Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<bits/stdc++.h>int N,L;char W[120000];int V[10010];char S[100010];int f[100010][26];int max;int main(){int i,j,k,l;while(scanf("%d",&N)!=EOF){l=0;for(i=0;i<N;i++){V[i]=l;scanf("%s",&W[l]);l=l+strlen(&W[l]);}V[N]=l;scanf("%s",&S);L=strlen(S);for(i=0;i<26;i++)f[L-1][i]=L;f[L-1][S[L-1]-'a']=L-1;for(i=L-2;i>=0;i--){k=i+1;for(j=0;j<26;j++)f[i][j]=f[k][j];f[i][S[i]-'a']=i;}