Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- int ans=0;
- void fun(string ar[],string s,bool arr[],int sindx,int sz)
- {
- if(sindx==s.length())
- {
- ans++;
- return;
- }
- for(int i=0;i<sz;i++)
- {
- if(arr[i]==false)
- {
- int fl=0;
- if(ar[i].length()>s.length()-sindx)
- {
- fl=1;
- }
- for(int j=0;j<min(ar[i].length(),s.length()-sindx);j++)
- {
- if(ar[i][j]!=s[j+sindx])
- {
- fl=1;
- break;
- }
- }
- if(fl==0)
- {
- arr[i]=true;
- fun(ar,s,arr,sindx+(min(ar[i].length(),s.length()-sindx)),sz);
- arr[i]=false;
- }
- }
- }
- return;
- }
- void solve()
- {
- int n;
- cin>>n;
- string ar[n];
- bool arr[n];
- for(int i=0;i<n;i++)
- {
- cin>>ar[i];
- arr[i]=false;
- }
- string req;
- cin>>req;
- fun(ar,req,arr,0,n);
- cout<<ans<<endl;
- ans=0;
- }
- int main()
- {
- int t;
- cin>>t;
- while(t--)
- {
- solve();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement