Cod sursă (job #676696)

Utilizator avatar andreiiorgulescu Iorgulescu Andrei andreiiorgulescu IP ascuns
Problemă Bart (clasele 9-10) Compilator cpp-32 | 0,59 kb
Rundă Arhiva de probleme Status evaluat
Dată 19 nov. 2022 19:47:25 Scor 70
#include <bits/stdc++.h>

using namespace std;

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

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

int main()
{
    char ch;
    while (in >> ch)
        a[n++] = ch;
    if (n == 1)
    {
        out << a[0];
        return 0;
    }
    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;
}