Tarango

CChef Lunchtime

Sep 27th, 2015
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.35 KB | None | 0 0
  1. //============================================================================
  2. // Name        : ACM
  3. // Author      : Tarango Khan
  4. // Team        : BRACU Byteheads
  5. //============================================================================
  6.  
  7. #include <bits/stdc++.h>
  8. using namespace std;
  9. #define Size 5005
  10. #define Max 15
  11. #define inf -9999999999
  12.  
  13. char s[1000],t[1000];
  14. int lens,lent;
  15. int A[1000];
  16.  
  17. bool call(int si,int sj,int ti,int tj){
  18.     if(si > sj && ti > tj) return true;
  19.     if(ti > tj) return false;
  20.     if(t[ti] == '*'){
  21.         if(si<=sj){
  22.             bool f = call(si+1,sj,ti+1,tj);
  23.             if(f == true) return true;
  24.             f = call(si+1,sj,ti,tj);
  25.             if(f == true) return true;
  26.         }
  27.         return call(si,sj,ti+1,tj);
  28.     }else{
  29.         if(s[si] != t[ti]) return false;
  30.         if(si<=sj){
  31.             return call(si+1,sj,ti+1,tj);
  32.         }
  33.     }
  34.     return false;
  35. }
  36.  
  37. void solve(){
  38.     for(int i = 0;i<lens;i++){
  39.         bool f = false;
  40.         for(int c = 0;c<lens;c++){
  41.             if(c-i>lent) break;
  42.             f = call(i,c,0,lent-1);
  43.             if(f == true){
  44.                 A[i] = c+1;
  45.                 break;
  46.             }
  47.         }
  48.         if(f == false){
  49.             A[i] = -1;
  50.         }
  51.     }
  52. }
  53.  
  54. int main(){
  55.     int nCase;
  56.     scanf("%d",&nCase);
  57.     for(int cs = 1;cs<=nCase;cs++){
  58.         scanf("%s %s",t,s);
  59.         lens = strlen(s);
  60.         lent = strlen(t);
  61.         solve();
  62.         printf("%d",A[0]);
  63.         for(int i = 1;i<lens;i++) printf(" %d",A[i]);
  64.         printf("\n");
  65.     }
  66. }
Advertisement
Add Comment
Please, Sign In to add comment