Cod sursă (job #710424)

Utilizator avatar tomaariciu Ariciu Toma tomaariciu IP ascuns
Problemă Bart (clasele 9-10) Compilator cpp-32 | 0,53 kb
Rundă Arhiva de probleme Status evaluat
Dată 23 mar. 2023 10:44:10 Scor 70
#include <fstream>

using namespace std;

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

int pi[500005];
string str, aux;

int main()
{
    ios_base::sync_with_stdio(false);
    fin >> str;
    int n = str.size() - 1;
    for(int i = 1; i <= n; i++)
    {
        int k = pi[i - 1];
        while(k && str[k] != str[i])
            k = pi[k];
        if(str[k] == str[i])
            k++;
        pi[i] = k;
    }
    int period = n - pi[n];
    str.resize(period + 1);
    fout << str;
    return 0;
}