Cod sursa(job #1726562)

Utilizator TiiberiuBujor Tiberiu-Cosmin Tiiberiu Data 8 iulie 2016 13:12:19
Problema Potrivirea sirurilor Scor 14
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <bits/stdc++.h>

using namespace std;

const int BIG = 2000005;
char sir_total[BIG],sir_comparat[BIG];

int main() {
    
    int poz[1000],n,m,k=1,z=0,cnt=0,j;
    
    freopen("strmatch.in", "r", stdin);
    freopen("strmatch.out", "w", stdout);
    
   scanf("%s%s",sir_total+1,sir_comparat+1);
   
   n  = strlen(sir_total+1);
   m  = strlen(sir_comparat+1);
   
   if(n < m){
        printf("%d\n",0);
        fclose(stdin);
        fclose(stdout);
    } 
   
   for(int i=1;i<=n;i++){
   
       if(sir_total[i] == sir_comparat[k]){ 
           poz[z] = i-1;
           k++;
           for(j=i+1;k<=m;j++,k++)
               if(sir_total[j] == sir_comparat[k])
                   cnt++; 
           if(cnt+1 == m)
                z++;
           cnt= 0;k=1;  
       }
   }
    printf("%d\n",z);
     z = min(z, 1000);
   for(int i=0;i<z;i++)
       printf("%d ",poz[i]);
   
    return 0;
       
}