Advertisement
Guest User

Untitled

a guest
Sep 20th, 2021
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.17 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int ans=0;
  4. void fun(string ar[],string s,bool arr[],int sindx,int sz)
  5. {
  6.     if(sindx==s.length())
  7.     {
  8.         ans++;
  9.         return;
  10.     }
  11.     for(int i=0;i<sz;i++)
  12.     {
  13.         if(arr[i]==false)
  14.         {
  15.             int fl=0;
  16.             if(ar[i].length()>s.length()-sindx)
  17.             {
  18.                 fl=1;
  19.             }
  20.             for(int j=0;j<min(ar[i].length(),s.length()-sindx);j++)
  21.             {
  22.                 if(ar[i][j]!=s[j+sindx])
  23.                 {
  24.                     fl=1;
  25.                     break;
  26.                 }
  27.             }
  28.             if(fl==0)
  29.             {
  30.                 arr[i]=true;
  31.                 fun(ar,s,arr,sindx+(min(ar[i].length(),s.length()-sindx)),sz);
  32.                 arr[i]=false;
  33.             }
  34.         }
  35.     }
  36.     return;
  37. }
  38. void solve()
  39. {
  40.     int n;
  41.     cin>>n;
  42.     string ar[n];
  43.     bool arr[n];
  44.     for(int i=0;i<n;i++)
  45.     {
  46.         cin>>ar[i];
  47.         arr[i]=false;
  48.     }
  49.     string req;
  50.     cin>>req;
  51.     fun(ar,req,arr,0,n);
  52.     cout<<ans<<endl;
  53.     ans=0;
  54. }
  55. int main()
  56. {
  57.     int t;
  58.     cin>>t;
  59.     while(t--)
  60.     {
  61.         solve();
  62.     }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement