Cod sursă (job #676707)

Utilizator avatar andreiiorgulescu Iorgulescu Andrei andreiiorgulescu IP ascuns
Problemă Bart (clasele 9-10) Compilator cpp-32 | 0,69 kb
Rundă Arhiva de probleme Status evaluat
Dată 19 nov. 2022 20:00:47 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");

string a;
int pi[500005];
string s;

int main()
{
    in >> a;
    int n = a.size();
    for (int i = 1; i < n; i++)
    {
        int k = pi[i - 1];
        while (k != 0 and a[k] != a[i])
            k = pi[k];
        if (a[i] == a[k])
            k++;
        pi[i] = k;
    }
    s.resize(n - pi[n - 1]);
    for (int i = 0; i < s.size(); i++)
        s[i] = a[i];
    out << s;
    return 0;
}