Cod sursă (job #691530)

Utilizator avatar PugInfo2019 Girbovan Robert Luca PugInfo2019 IP ascuns
Problemă Bart (clasele 9-10) Compilator cpp-32 | 0,58 kb
Rundă Arhiva de probleme Status evaluat
Dată 30 ian. 2023 16:36:51 Scor 100
#include <bits/stdc++.h>

using namespace std;

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

const int MAX_N = 500'000;
int n, len, kmp[MAX_N + 5];
string s;

int main (){
    ios_base::sync_with_stdio(false);
    fin.tie(nullptr), fout.tie(nullptr);

    fin>>s;
    n = (int)s.size();

    kmp[0] = len = 0;
    for(int i=1; i < n; i++){
        while(len > 0 && s[i] != s[len])
            len = kmp[len-1];
        len += (s[i] == s[len]);
        kmp[i] = len;
    }

    for(int i=0; i < n - kmp[n-1]; i++)
        fout<<s[i];
    return 0;
}