Pagini recente »
Istoria paginii runda/2022-02-02-clasa-5-tema-25
|
2022-09-17-clasa-7-tema-01
|
Istoria paginii runda/2018-11-01-clasa-6-tema-7
|
Istoria paginii runda/cerc25.01.14
|
Cod sursă (job #676703)
Cod sursă (job
#676703)
#pragma GCC optimize("O1")
#pragma GCC optimize("O2")
#pragma GCC optimize("O3")
#pragma GCC optimize("O4")
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
#include <bits/stdc++.h>
using namespace std;
ifstream in("bart.in");
ofstream out("bart.out");
string a;
int pi[500005];
string s;
int main()
{
in >> a;
int n = a.size();
for (int i = 1; i < n; i++)
{
pi[i] = pi[i - 1];
while (pi[i] != 0 and a[pi[i]] != a[i])
pi[i] = pi[pi[i]];
if (a[i] == a[pi[i]])
pi[i]++;
}
s.resize(n - pi[n - 1]);
for (int i = 0; i < s.size(); i++)
s[i] = a[i];
//out << s;
return 0;
}