Cod sursă (job #741673)

Utilizator avatar Nasa1004 Ema Nicole Gheorghe Nasa1004 IP ascuns
Problemă Bart (clasele 9-10) Compilator cpp-32 | 0,75 kb
Rundă Arhiva de probleme Status evaluat
Dată 31 oct. 2023 15:19:52 Scor 100
#include <fstream>
#include <vector>

using namespace std;

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

int main()
{
    string s;
    cin >> s;

    vector < int > pi(s.size());
    pi[0] = 0;
    int k = 0;

    for(int i = 1; i < s.size(); i++)
    {
        while(k != 0 && s[k] != s[i])
            k = pi[k - 1];
        if(s[k] == s[i])
            k++;
        pi[i] = k;
    }
    for(int i = 0; i < s.size() - pi[s.size() - 1]; i++)
        cout << s[i];
    /*cout << '\n';

    for(int i = 0; i < s.size(); i++)
        cout << pi[i] << " ";
    cout << '\n';
    for(int i = 0; i < s.size(); i++)
    {
        cout << s[i] << " ";
        if(pi[i + 1] > 9)
            cout << " ";
    }*/
    return 0;
}