Pagini recente »
Profil vlad_marinperianu
|
Monitorul de evaluare
|
Atașamentele paginii Clasament 2021-10-01-clasa-6-tema-03
|
c1_oni_10
|
Cod sursă (job #239629)
Cod sursă (job
#239629)
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("bart.in");
ofstream fout("bart.out");
#define MAX 500001
char s[MAX];
int n, a[MAX], k;
int main()
{
fin >> (s + 1);
n = strlen(s + 1);
for(int i = 2; i <= n; i++)
{
while(k > 0 && s[k+1] != s[i])k = a[k];
if(s[k+1] == s[i])k++;
a[i]=k;
}
for(int i = 1;i <= n - a[n]; i++)fout << s[i];
return 0;
}