Cod sursă (job #529795)

Utilizator avatar WladDalwM Cazan123 WladDalwM IP ascuns
Problemă Bart (clasele 9-10) Compilator cpp | 0,52 kb
Rundă Arhiva de probleme Status evaluat
Dată 22 feb. 2020 21:58:01 Scor 100
#include <fstream>
#include <cstring>

using namespace std;
ifstream cin("bart.in");
ofstream cout("bart.out");
char v[500005];
int pi[500005];

int main()
{
    int i , j , n , cur;
    cin >> (v + 1);
    n = strlen(v + 1);
    for(i = 2; i <= n; i++)
    {
        cur = pi[i - 1];
        while(cur && v[i] != v[cur + 1])
            cur = pi[cur];
        if(v[i] == v[cur + 1])
            cur++;
        pi[i] = cur;
    }
    for(i = 1; i <= n - pi[n]; i++)
        cout << v[i];
    return 0;
}