Cod sursă (job #676698)

Utilizator avatar andreiiorgulescu Iorgulescu Andrei andreiiorgulescu IP ascuns
Problemă Bart (clasele 9-10) Compilator cpp-32 | 0,68 kb
Rundă Arhiva de probleme Status evaluat
Dată 19 nov. 2022 19:51:20 Scor 70
#pragma GCC optimize("O1")
#pragma GCC optimize("O2")
#pragma GCC optimize("O3")
#pragma GCC optimize("O4")
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
#include <bits/stdc++.h>

using namespace std;

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

char a[500005];
int pi[500005];

int main()
{
    in.getline(a,500003);
    int n = strlen(a);
    for (int i = 1; i < n; i++)
    {
        pi[i] = pi[i - 1];
        while (pi[i] != 0 and a[pi[i]] != a[i])
            pi[i] = pi[pi[i]];
        if (a[i] == a[pi[i]])
            pi[i]++;
    }
    int lg = n - pi[n - 1];
    for (int i = 0; i < lg; i++)
        out << a[i];
    return 0;
}