Cod sursa(job #740991)

Utilizator dutzulBodnariuc Dan Alexandru dutzul Data 25 aprilie 2012 01:31:43
Problema Potrivirea sirurilor Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>
#define LE 2000005
using namespace std;
ifstream f("strmatch.in");
ofstream g("strmatch.out");
int n1,n2,i,k,k2,pozitie,Poz[LE],IN[LE],j;
string a,b;
int main()
{
  f>>a>>b;
  n1=a.length();
  n2=b.length();

  for(i=0; i<n2; ++i)
    if (b[i]==a[0])
      {
        Poz[++k]=i;
        IN[k]=i;
      }




  for(i=1; i<n1; ++i)
    {
      k2=k;
      k=0;
      for(j=1; j<=k2; ++j)
        {
          pozitie=Poz[j];

          if (pozitie+1<n2&&b[pozitie+1]==a[i])
            {
              Poz[++k]=pozitie+1;
              IN[k]=IN[j];
            }
        }
    }
  g<<k<<'\n';

  for(i=1; i<=1000&&i<=k; ++i)
    g<<IN[i]<<" ";
  f.close();
  g.close();
  return 0;
}