Cod sursa(job #2174161)

Utilizator stefzahZaharia Stefan Tudor stefzah Data 16 martie 2018 11:00:23
Problema A+B Scor 0
Compilator cpp Status done
Runda Lista lui wefgef Marime 0.94 kb
#include <bits/stdc++.h>
using namespace std;

ifstream fin("secvpal1.in");
ofstream fout("secvpal1.out");

int n,L;
int lmax[50005];

int LgMax(char s[])
{ int i,st,dr,lgmax=0,lg,n=strlen(s);
  for (i=0;i<n;i++)
  { /// lungime impara
    lg=1; st=i-1; dr=i+1;
    while (st>=0 && dr<=n-1 && s[st]==s[dr])
      { lg+=2; st--; dr++; }
    if (lg>lgmax) lgmax=lg;
    /// lungime para
    lg=0; st=i; dr=i+1;
    while (st>=0 && dr<=n-1 && s[st]==s[dr])
      { lg+=2; st--; dr++; }
    if (lg>lgmax) lgmax=lg;
  }

  return lgmax;
}


void Citire()
{ int i; char s[10005];
  fin>>n>>L;
  for (i=1;i<=n;i++)
  { fin>>s;
    lmax[i]=LgMax(s);
  }
}

int NumarSecvente()
{ int s=0,nr=0,i,primul=1;

  for (i=1;i<=n;i++)
      { s=s+lmax[i];
        while (s>L) { s=s-lmax[primul]; primul++; }
        if (s==L) nr++;
      }
  return nr;
}

int main()
{   Citire();
    fout<<NumarSecvente();
    return 0;
}