Cod sursa(job #723397)

Utilizator XladhenianGrigorita Vlad-Stefan Xladhenian Data 25 martie 2012 14:04:57
Problema Potrivirea sirurilor Scor 16
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb

#include <fstream>
#include <string.h>
using namespace std;

char A[2000005];
char B[2000005];
long res[2000005];

int main(void)
{
 fstream fin("strmatch.in",ios::in);
 fstream fout("strmatch.out",ios::out);
 fin >> B >> A;
 long la,lb,i,j,c;
 la = strlen(A);
 lb = strlen(B);
 c = 0;

 i = 0;
 while (i <= (la - lb))
  {
   j = 0;
   while ((j < lb) && ((i + j) <= la))
    {
     while (A[i + j] != B[j])
      {
       i += 1;
       j -= 1;
       if (j < 0)
         {
          break;
         }
      }
     j += 1;
    }
   if (j == lb)
     {
      res[c] = i;
      c += 1;
     }
   i += 1;
  }
 fout << c << "\n";
 if (c > 1000)
   {
    c = 1000;
   }
 for (i = 0;i < c;i += 1)
  {
   fout << res[i] << " ";
  }
 fin.close();
 fout.close();
 return 0;
}