Cod sursă (job #293933)

Utilizator avatar adriannicolae Adrian Nicolae adriannicolae IP ascuns
Problemă Bart (clasele 9-10) Compilator cpp | 0,60 kb
Rundă Arhiva de probleme Status evaluat
Dată 17 mar. 2017 18:43:14 Scor 100
//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;
    k = 0;
    pi[ 0 ] = 0 ;
    f>>p[ 0 ];
    q = 1;
    f>>p[ q ];
    while(!f.eof())
    {
        while(( k > 0 ) && ( p[ k ] != p[ q ]))
            k = pi[ k - 1 ];
        if( p[ k ] == p[ q ] )
            k ++;
        pi[ q ] = k;
        q ++;
        f>>p[ q ];
    }
    for( i = 0 ; i < q - k ;i ++ )
        g<<p[ i ]; 
    g.close();
    return 0;
}