Pentru această operație este nevoie să te autentifici.
Cod sursă (job #600444)
Utilizator |
|
IP | ascuns |
---|---|---|---|
Problemă | Bart (clasele 9-10) | Compilator | cpp-32 | 0,58 kb |
Rundă | Arhiva de probleme | Status | evaluat |
Dată | 16 iun. 2021 01:40:43 | Scor | 60 |
#include <fstream>
#define NMAX 500005
using namespace std;
ifstream f("bart.in");
ofstream g("bart.out");
int last;
int pi[NMAX];
string str;
int main()
{
f >> str;
pi[0] = -1;
for (int i = 1; i < str.size(); i++) {
int k = pi[i - 1];
while (k != -1 && str[i - 1] != str[k]) {
k = pi[k];
}
pi[i] = k + 1;
}
for (int i = 0; i < str.size(); i++) {
if (pi[i] != pi[i - 1] + 1)
last = i;
}
for (int i = 0; i < last; i++)
g << str[i];
return 0;
}