Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //============================================================================
- // Name : ACM
- // Author : Tarango Khan
- // Team : BRACU Byteheads
- //============================================================================
- #include <bits/stdc++.h>
- using namespace std;
- #define Size 5005
- #define Max 15
- #define inf -9999999999
- char s[1000],t[1000];
- int lens,lent;
- int A[1000];
- bool call(int si,int sj,int ti,int tj){
- if(si > sj && ti > tj) return true;
- if(ti > tj) return false;
- if(t[ti] == '*'){
- if(si<=sj){
- bool f = call(si+1,sj,ti+1,tj);
- if(f == true) return true;
- f = call(si+1,sj,ti,tj);
- if(f == true) return true;
- }
- return call(si,sj,ti+1,tj);
- }else{
- if(s[si] != t[ti]) return false;
- if(si<=sj){
- return call(si+1,sj,ti+1,tj);
- }
- }
- return false;
- }
- void solve(){
- for(int i = 0;i<lens;i++){
- bool f = false;
- for(int c = 0;c<lens;c++){
- if(c-i>lent) break;
- f = call(i,c,0,lent-1);
- if(f == true){
- A[i] = c+1;
- break;
- }
- }
- if(f == false){
- A[i] = -1;
- }
- }
- }
- int main(){
- int nCase;
- scanf("%d",&nCase);
- for(int cs = 1;cs<=nCase;cs++){
- scanf("%s %s",t,s);
- lens = strlen(s);
- lent = strlen(t);
- solve();
- printf("%d",A[0]);
- for(int i = 1;i<lens;i++) printf(" %d",A[i]);
- printf("\n");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment