Pentru această operație este nevoie să te autentifici.
Cod sursă (job #441887)
Utilizator |
|
IP | ascuns |
---|---|---|---|
Problemă | Bart (clasele 9-10) | Compilator | cpp | 0,42 kb |
Rundă | Arhiva de probleme | Status | evaluat |
Dată | 4 mar. 2019 14:20:57 | Scor | 100 |
#include <bits/stdc++.h>
using namespace std;
ifstream in("bart.in");
ofstream out("bart.out");
char v[500100];
int n,p[500100];
int main()
{
in>>(v+1);
n=strlen(v+1);
int j=0;
int i=2;
p[1]=0;
while(i<=n)
{
while(v[i]!=v[j+1]&&j>0) j=p[j];
if(v[i]==v[j+1]) j++;
p[i]=j;
i++;
}
for(int i=1;i<=n-p[n];i++) out<<v[i];
return 0;
}