Cod sursa(job #1726566)

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

using namespace std;

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

int main() {
    
    long long poz[BIG],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(long long 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("%lld\n",z);
     z = min(z, 1000);
   for(long long i=0;i<z;i++)
       printf("%lld ",poz[i]);
   
    return 0;
       
}