Pagini recente »
Istoria paginii runda/2024-01-14-clasa-8-tema-13
|
Borderou de evaluare (job #156914)
|
Borderou de evaluare (job #408086)
|
Borderou de evaluare (job #165718)
|
Cod sursă (job #443935)
Cod sursă (job
#443935)
#include <bits/stdc++.h>
using namespace std;
ifstream in("bart.in");
ofstream out("bart.out");
char S[500001];
int l, p[500001], x;
int main()
{
cin.getline(S, 500001);
l = strlen(S);
int q = -1;
p[0] = 0;
for(int i = 1;i < l;i++)
{
while(S[i] != S[q + 1] && q >= 0) q = p[q];
if(S[i] == S[q + 1])q++;
p[i] = q;
}
for(int i = 0;i < l - p[l - 1] - 1;i++)
cout << S[i];
return 0;
}