Pentru această operație este nevoie să te autentifici.
Cod sursă (job #376665)
Utilizator |
|
IP | ascuns |
---|---|---|---|
Problemă | Bart (clasele 9-10) | Compilator | cpp | 0,50 kb |
Rundă | Arhiva de probleme | Status | evaluat |
Dată | 10 apr. 2018 18:59:59 | Scor | 20 |
#include <fstream>
#include <cstring>
using namespace std;
ifstream in("bart.in");
ofstream out("bart.out");
char ch[500005];
int pre[500005];
int main()
{
in>>(ch+1);
int p = 0;
for(int i = 2; i <= strlen(ch+1); i ++)
{
while(p && ch[i] != ch[p + 1])
p = pre[p];
if(ch[i] == ch[p + 1])
p++;
pre[i] = p;
}
for(int i = 1; i <= strlen(ch+1) - pre[strlen(ch+1)]; i ++)
out << ch[i];
return 0;
}