Pagini recente »
Monitorul de evaluare
|
Clasament 2022-02-03-clasa-6-concurs07-cursuri-performanta
|
Istoria paginii runda/2021-02-26-clasa-6-concurs-06
|
Cod sursă (job #676708)
Cod sursă (job
#676708)
#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];
int main()
{
in >> a;
a = ' ' + a;
int n = a.size() - 1;
for (int i = 2; i <= n; i++)
{
pi[i] = pi[i - 1];
while (pi[i] != 0 and a[pi[i] + 1] != a[i])
pi[i] = pi[pi[i]];
if (a[i] == a[pi[i] + 1])
pi[i]++;
}
for (int i = 1; i <= n - pi[n]; i++)
out << a[i];
return 0;
}