QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#384192#3698. CensorrukongAC ✓47ms36952kbC++20861b2024-04-09 20:56:212024-04-09 20:56:22

Judging History

This is the latest submission verdict.

  • [2024-04-09 20:56:22]
  • Judged
  • Verdict: AC
  • Time: 47ms
  • Memory: 36952kb
  • [2024-04-09 20:56:21]
  • Submitted

answer

#include <iostream>
#include <vector>
using namespace std;

const int N = 5000100;
int nex[N];

void getnext(string &a)
{
	int i = 0, k = -1;
	nex[0] = -1;
	while (i < a.size())
	{
		if (k == -1 || a[i] == a[k])
		{
			i++, k++;
			if (a[i] == a[k])
				nex[i] = nex[k];
			else
				nex[i] = k;
		}
		else
			k = nex[k];
	}
}

void kmp(string &b, string &a)
{
	vector<char>ans(b.size() + 1);
	vector<int>num(b.size() + 1);
	int j = 0, top = 0;
	for (int i = 0; i < b.size(); i++)
	{
		ans[++top] = b[i];
		while (j != -1 && b[i] != a[j])
			j = nex[j];
		j++;
		num[top] = j;
		if (j == a.size())
		{
			top -= a.size();
			j = num[top];
		}
	}
	for (int i = 1; i <= top; i++)
		cout << ans[i];
	cout << '\n';
}

int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	string a, b;
	while (cin >> a >> b)
	{
		getnext(a);
		kmp(b, a);
	}
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3828kb

input:

abc
aaabcbc

output:

a

result:

ok "a"

Test #2:

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

input:

b
bbb

output:



result:

ok 0 tokens

Test #3:

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

input:

abc
ab

output:

ab

result:

ok "ab"

Test #4:

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

input:

a
a

output:



result:

ok 0 tokens

Test #5:

score: 0
Accepted
time: 30ms
memory: 34308kb

input:

psbxsnuvsjxqxaxtenaeamkeiexxrxjedktjovzchfagxtuufdpkbygqomxcgtatpqbkmtfejjobotujqtsemecytkcrnjgsltmlwvskbwncdtruokaisoqembgdmbjrmdehxlqdxyqyrhncvxntsqolhgcmzqkbswtmajbfxgrowadtjernqvhndbdyjchjniakmufkojzykdcvhnfahiyugbeujvpjddroflvktkbijgqpwdowtxjcoelwzlwbarnrlkgzwenifjduqlulsqlbhyqpoyvycbltpacjzctr...

output:

oegqzaeamymfahlivlcmvkzygvfqsmswsjvramhldsijvbckvplzctcqoanhmdzkdonbzibkbtgjvcghwjrzsqnkrpbfclizatdoxoezdhyktljopqpvctzspwvgkjwrznuqxhebximatsznunienlrvggrqqxscftwveakyeulomfroocwycvtwkhugbwoaelrrelqhyrazflgworbngfknlfzpwmzruuwpswvjrulqixaayhtygfcaioegvxcostrbolmlihcwflxsyvgqjmrgioytgrpnlexmylfqslgs...

result:

ok "oegqzaeamymfahlivlcmvkzygvfqsm...gkdljsilibmvlswatdofwrwsaltvmhg"

Test #6:

score: 0
Accepted
time: 15ms
memory: 33100kb

input:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

output:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

result:

ok "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

Test #7:

score: 0
Accepted
time: 25ms
memory: 34472kb

input:

ababbababbabbababbabbababbababbabbababbababbabbababbabbababbababbabbababbabbababbababbabbababbababbabbababbabbababbababbabbababbababbabbababbabbababbababbabbababbabbababbababbabbababbababbabbababbabbababbababbabbababbabbababbababbabbababbababbabbababbabbababbababbabbababbababbabbababbabbababbababbab...

output:

abbabbababbababbabbababbababbabbababbabbababbababbabbababbababbabbababbabbababbababbabbababbabbababbababbabbababbababbabbababbabbababbababbabbababbabbababbababbabbababbababbabbababbabbababbababbabbababbababbabbababbabbababbababbabbababbabbababbababbabbababbababbabbababbabbababbababbabbababbababbabba...

result:

ok "abbabbababbababbabbababbababba...ababbabbababbababbabbababbabbab"

Test #8:

score: 0
Accepted
time: 24ms
memory: 32976kb

input:

gluotgkgvemqkxnhkcbagxxnneujamscmzsehglfaoyonhvlencqhgwoqaxkxzhvkdwdsoweyiypneyjzvioatvzscdeyekoktktljrtslaykowttrgxskdannclzdoikbzfubgemcpwdsljgzfdzhgvvnbpljrdtdwbzllvetzbmkkbprpwypixocbxvtlbvptvrxnshoopfkeqfcmxcnkujoourtinvxwptbqpeabfqelwojanvlxtpaiivhjlwuazwixbngtlpaffotwqzrblmxnhoubsyqifxxrzgfki...

output:

dvvloxkccarswflgydmjonurioutqmmwfjmniyghdccxhwyqlrqekecsxwjlawsufzjgopbeawcuqseccbompyozyaoouucdydbwsnzsrpaxywkpdewyznfeaoulvldrfhzzttyzslqyezxzikgpfeptmykvnkankrbetwtaqdcpsltenyvhqbivgwysmbjunabmdlhunadaimgfycczkdvjqoiiwkxsuekjkaupmwewhezdtiaimlfjbilaqkcofezxoovflddrkipiftliswkdghbhbkwncvsxbzrgiuax...

result:

ok "dvvloxkccarswflgydmjonurioutqm...oiedsimtummptasitamhsdaplxjkwei"

Test #9:

score: 0
Accepted
time: 47ms
memory: 35176kb

input:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

output:

aaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaa...

result:

ok "aaaaaaaaaaaaaaaaaaaaaaaaaabaaa...aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

Test #10:

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

input:

babbababbabbababbababbabbababbabbababbababbabbababbababbabbababbabbababbababbabbababbabbababbababbabbababbababbabbababbabbababbababbabbababbababbabbababbabbababbababbabbababbabbababbababbabbababbababbabbababbabbababbababbabbababbabbababbababbabbababbababbabbababbabbababbababbabbababbababbabbababbabb...

output:

babbababbabbababbababbabbababbabbababbababbabbababbababbabbababbabbababbababbabbababbabbababbababbabbababbababbabbababbabbababbababbabbababbababbabbababbabbababbababbabbababbabbababbababbabbababbababbabbababbabbababbababbabbababbababbabbababbabbababbababbabbababbabbababbababbabbababbababbabbababbabb...

result:

ok "babbababbabbababbababbabbababb...bababbababbabbababbababbabbabab"