Pentru această operație este nevoie să te autentifici.

Cod sursă (job #376665)

Utilizator avatar mircearoata Mircea Roata Palade mircearoata IP ascuns
Problemă Bart (clasele 9-10) Compilator cpp | 0,50 kb
Rundă Arhiva de probleme Status evaluat
Dată 10 apr. 2018 18:59:59 Scor 20
#include <fstream>
#include <cstring>

using namespace std;

ifstream in("bart.in");
ofstream out("bart.out");

char ch[500005];
int pre[500005];

int main()
{
    in>>(ch+1);
    int p = 0;
    for(int i = 2; i <= strlen(ch+1); i ++)
    {
        while(p && ch[i] != ch[p + 1])
            p = pre[p];
        if(ch[i] == ch[p + 1])
            p++;
        pre[i] = p;
    }
    for(int i = 1; i <= strlen(ch+1) - pre[strlen(ch+1)]; i ++)
        out << ch[i];
    return 0;
}