UOJ Logo

NOI.AC

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#210937#2067. 肉夹馍WILDFIRE2331001367ms3132kbC++11981b2024-08-08 11:49:132024-08-08 14:29:13

answer

#ifndef ONLINE_JUDGE
#pragma warning(disable:4996)
#pragma warning(disable:6031)
#endif
#include <bits/stdc++.h>
#define base 131
#define _base 4580153
#define mod 100000007
using namespace std;
string str; long long qPow(int a, int b) {
	long long res = 1, t = a % mod;
	while (b) {
		if (b & 1) res = (res * t) % mod;
		t = (t * t) % mod;
		b >>= 1LL;
	}
	return res;
}
int main() {
	cin >> str;
	printf("0 0 ");
	int l = 0, r = 2;  //左闭右开
	long long h1 = 0, h2 = 0;
	for (int I = 2; I < str.size(); I++)
	{
		h1 = (h1 * base % mod + str[l]) % mod, l++;
		h2 = (h2 * base % mod + str[I]) % mod;
		if (l == r) {
			h1 = ((h1 + mod - str[l-1]) % mod * _base) % mod, l--;
			h2 = (h2 - str[r] * qPow(base, I - r) % mod + mod) % mod, r++;
		}
		while (h1 != h2 && l != 0) {
			h1 = ((h1 + mod - str[l-1]) % mod * _base) % mod, l--;
			h2 = (h2 - str[r] * qPow(base, I - r) % mod + mod) % mod, r++;
		}
		printf("%d ", l);
	}
	return 0;
}

Details

小提示:点击横条可展开更详细的信息

Subtask #1:

score: 10
Accepted

Test #1:

score: 10
Accepted
time: 0ms
memory: 1220kb

input:

qpbvqpbvqpbvavdqpbvqpbvqpbvavdqpbvqpbvqpbvavdfnfninqpbvqpbvqpbvavdqpbvqpbvqpbvavdqpbvqpbvqpbvavd

output:

0 0 0 0 1 2 3 0 1 2 3 4 0 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15...

result:

ok 96 tokens

Test #2:

score: 0
Accepted
time: 0ms
memory: 1224kb

input:

wfalgbgweavpwhfahfewhavweahuwbvbqvuivhuiaehufuaeuvdafuivjafislfhbibcuuiabcuibsv

output:

0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

result:

ok 79 tokens

Test #3:

score: 0
Accepted
time: 0ms
memory: 1220kb

input:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

output:

0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 ...

result:

ok 100 tokens

Subtask #2:

score: 20
Accepted

Test #4:

score: 20
Accepted
time: 0ms
memory: 1232kb

input:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

output:

0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 ...

result:

ok 3000 tokens

Test #5:

score: 0
Accepted
time: 0ms
memory: 1228kb

input:

cjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcj...

output:

0 0 1 0 1 2 3 2 3 4 5 4 5 6 7 6 7 8 9 8 9 10 11 10 11 12 13 12 13 14 15 14 15 16 17 16 17 18 19 18 1...

result:

ok 3000 tokens

Test #6:

score: 0
Accepted
time: 0ms
memory: 1228kb

input:

ckcckckcckcckckcckcckckcckcckckcsdvhckcckckcckcckckcckcckckcckcckckcsdvhckcckckcckcckckcckcckckcckcc...

output:

0 0 1 1 2 1 2 3 4 2 3 4 5 6 7 3 4 5 6 4 5 6 7 8 9 10 11 12 13 14 15 8 0 0 0 0 1 2 3 4 5 6 7 8 9 10 1...

result:

ok 2828 tokens

Subtask #3:

score: 30
Accepted

Test #7:

score: 30
Accepted
time: 14ms
memory: 1352kb

input:

aocnsaosashoicfaaocnsaosashoicfaqowfwpqgvqvhoabcdoawaocnsaosashoicfaaocnsaosashoicfaqowfwpqgvqvhoabc...

output:

0 0 0 0 0 1 2 0 1 0 0 0 0 0 0 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 ...

result:

ok 100000 tokens

Test #8:

score: 0
Accepted
time: 13ms
memory: 1352kb

input:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

output:

0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 ...

result:

ok 100000 tokens

Test #9:

score: 0
Accepted
time: 17ms
memory: 1348kb

input:

vivivivivivivivivivivivivivivivivivivivivivivivivivivivivivivivivivivivivivivivivivivivivivivivivivi...

output:

0 0 1 0 1 2 3 2 3 4 5 4 5 6 7 6 7 8 9 8 9 10 11 10 11 12 13 12 13 14 15 14 15 16 17 16 17 18 19 18 1...

result:

ok 100000 tokens

Subtask #4:

score: 40
Accepted

Test #10:

score: 40
Accepted
time: 321ms
memory: 3128kb

input:

aoifcpiapdpsahfahiofhdiohraoifcpiapdpsahfahiofhdiohraoifcpiapdpsahfahiofhdiohraoifcpiapdpsahfahiofhd...

output:

0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...

result:

ok 2000000 tokens

Test #11:

score: 0
Accepted
time: 330ms
memory: 3132kb

input:

abacabadabacabaeabacabadabacabafabacabadabacabaeabacabadabacabagabacabadabacabaeabacabadabacabafabac...

output:

0 0 1 0 1 2 3 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 ...

result:

ok 2000000 tokens

Test #12:

score: 0
Accepted
time: 349ms
memory: 3128kb

input:

gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg...

output:

0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 16 16 17 17 18 18 19 19 ...

result:

ok 2000000 tokens

Test #13:

score: 0
Accepted
time: 323ms
memory: 3132kb

input:

duududuududuududuududuududuududuududuududuududuududuududuududuududuududuududuududuududuududuududuudu...

output:

0 0 0 1 2 1 2 3 4 2 1 2 3 4 5 6 7 8 9 5 6 7 8 9 10 11 12 13 14 10 11 12 13 14 15 16 17 18 19 15 16 1...

result:

ok 2000000 tokens