Cod sursă (job #93577)

Utilizator avatar dummy contdezactivat dummy IP ascuns
Problemă Bart (clasele 9-10) Compilator cpp | 0,85 kb
Rundă Tema 8 clasele 9-10 2014/15 Status evaluat
Dată 29 nov. 2014 22:48:29 Scor 0
//Iisuse miluieste - ma
#include<fstream>
#define GOD 500000
using namespace std;
int main()
{
ifstream f("bart.in");
ofstream g("bart.out");
char p[ GOD ];
int pi[ GOD ] , k, i , q;
i = 0;
while(!f.eof())
      {
       f>>p[ i ];
       i ++;
       }
f.close();
k = 0;
pi[ 0 ] = 0;
for( q = 1; q < i ; q ++ )
    {
     while(( k > 0 ) && ( p[ k ] != p[ q ]))
           k = pi[ k - 1 ];
     if( p[ k ] == p[ q ] )
        k ++;
     pi[ q ] = k;
     }
m = 0;
pi[ 0 ] = 0;
for( q = 1; q < i - k ; q ++ )
    {
     while(( m > 0 ) && ( p[ m ] != p[ q ] ))
           m = pi[ m - 1 ];
     if( p[ q ] == p[ m ] )
        m ++;
     pi[ q ] = m;
     }
if( m == 0 )
   {
    for( q = 0; q < i - k ; q ++ )
        g<<p[ q ];
else
    for( q = 0 ; q < m ; q ++ )
        g<<p[ q ];
g.close();
return 0;
}