QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#919989#897. 基本子串字典NOI_AK_ME#AC ✓404ms45972kbC++263.8kb2025-02-28 14:32:412025-02-28 14:32:41

Judging History

This is the latest submission verdict.

  • [2025-02-28 14:32:41]
  • Judged
  • Verdict: AC
  • Time: 404ms
  • Memory: 45972kb
  • [2025-02-28 14:32:41]
  • Submitted

answer

#include <bits/stdc++.h>
#define rep(i, n) for(int i = 0; i < (int)(n); i ++)
#define rep1(i, n) for(int i = 1; i <= (int)(n); i ++)
#define MP make_pair

using namespace std;
typedef long long LL;
typedef pair<int, int> PII;
const int MOD = 998244353;

int n, m, q;
char s[200005];
int rk[25][200005], nxt[200005], sa[200005];

int cnt[200005], tmp[200005];
void radsort(int d)
{
	int l = n - (1 << d) + 1,* A = rk[d - 1],* B = rk[d - 1] + (1 << (d - 1));
	rep(i, m) cnt[i] = 0;
	rep(i, l) cnt[B[i]] ++;
	rep1(i, m - 1) cnt[i] += cnt[i - 1];
	for(int i = l - 1; i >= 0; i --) tmp[-- cnt[B[i]]] = i;
	rep(i, m) cnt[i] = 0;
	rep(i, l) cnt[A[i]] ++;
	rep1(i, m - 1) cnt[i] += cnt[i - 1];
	for(int i = l - 1; i >= 0; i --) sa[-- cnt[A[tmp[i]]]] = tmp[i];
}

void gen_sa()
{
	rep(i, n) rk[0][i] = s[i];
	for(int d = 1; n >> d; d ++) {
		radsort(d);
		rk[d][sa[0]] = 0;
		int cur, pre;
		rep1(i, n - (1 << d)) {
			cur = sa[i]; pre = sa[i - 1];
			rk[d][cur] = rk[d][pre] + (rk[d - 1][cur] != rk[d - 1][pre] || rk[d - 1][cur + (1 << (d - 1))] != rk[d - 1][pre + (1 << (d - 1))]);
		}
	}
}

int ql[200005], qr[200005], mina[200005], maxa[200005], cnta[200005];
vector<int> lq[200005], rq[200005];
int mn0[200005], mx0[200005], mn1[200005], mx1[200005];

void calc(int& rn, int& rx, int& rc, int x, int l, int r, int d)
{
	if(x >= l && x <= r && x % d == l % d) {
		rn = min(rn, x); rx = max(rx, x); rc ++;
	}
}
void calc(int& rn, int& rx, int& rc, int la, int ra, int da, int lb, int rb, int db)
{
	if(ra - la <= da) for(int i = la; i <= ra; i += da) calc(rn, rx, rc, i, lb, rb, db);
	else if(rb - lb <= db) for(int i = lb; i <= rb; i += db) calc(rn, rx, rc, i, la, ra, da);
	else if(ra % da == rb % db && ra >= lb && rb >= la) {
		rn = min(rn, max(la, lb)); rx = max(rx, min(ra, rb)); rc += (min(ra, rb) - max(la, lb)) / da + 1;
	}
}

void solve(int d)
{
	rep(i, m) tmp[i] = n;
	int cur;
	for(int i = n - (1 << d); i >= 0; i --) {
		cur = rk[d][i]; nxt[i] = tmp[cur]; tmp[cur] = i;
	}
	
	rep(i, q) {
		mn0[i] = mn1[i] = n; mx0[i] = mn0[i] = -1;
	}
	int cp, cq;
	rep(i, m) tmp[i] = -1;
	for(int i = -(1 << d); i <= n; i ++) {
		if(i >= 0 && i <= (n - (1 << d))) tmp[rk[d][i]] = i;
		cp = i + (1 << d) - 1;
		if(cp >= 0 && cp < n) rep(j, rq[cp].size()) {
			cq = rq[cp][j];
			if((qr[cq] - ql[cq] + 1) >> d) mx0[cq] = tmp[rk[d][ql[cq]]];
		}
		cp = i - (1 << d) + 1;
		if(cp >= 0 && cp < n) rep(j, lq[cp].size()) {
			cq = lq[cp][j];
			if((qr[cq] - ql[cq] + 1) >> d) mx1[cq] = min(tmp[rk[d][qr[cq] - (1 << d) + 1]], qr[cq] - (1 << d) + 1);
		}
	}
	rep(i, m) tmp[i] = n;
	for(int i = n; i >= -(1 << d); i --) {
		if(i >= 0 && i <= (n - (1 << d))) tmp[rk[d][i]] = i;
		cp = i + (2 << d) - 2;
		if(cp >= 0 && cp < n) rep(j, rq[cp].size()) {
			cq = rq[cp][j];
			if((qr[cq] - ql[cq] + 1) >> d) mn0[cq] = max(tmp[rk[d][ql[cq]]], nxt[ql[cq]]);
		}
		cp = i;
		if(cp >= 0 && cp < n) rep(j, lq[cp].size()) {
			cq = lq[cp][j];
			if((qr[cq] - ql[cq] + 1) >> d) mn1[cq] = tmp[rk[d][qr[cq] - (1 << d) + 1]];
		}
	}
	
	rep(i, q) {
		if(mn0[i] > mx0[i] || mn1[i] > mx1[i]) continue;
		int dif0 = nxt[mn0[i]] - mn0[i], dif1 = nxt[mn1[i]] - mn1[i];
		swap(mn0[i], mx0[i]); mn0[i] = qr[i] - mn0[i] + 1; mx0[i] = qr[i] - mx0[i] + 1;
		mn1[i] += (1 << d) - ql[i]; mx1[i] += (1 << d) - ql[i];
		
		calc(mina[i], maxa[i], cnta[i], mn0[i], mx0[i], dif0, mn1[i], mx1[i], dif1);
	}
}

int main()
{
	scanf("%s%d", s, &q); n = strlen(s); m = max(128, n);
	gen_sa();
	rep(i, q) scanf("%d%d", &ql[i], &qr[i]);
	rep(i, q) {
		lq[ql[i]].push_back(i); rq[qr[i]].push_back(i);
	}
	
	rep(i, q) mina[i] = n;
	for(int d = 0; n >> d; d ++) solve(d);
	
	rep(i, q) if(cnta[i] == 0) printf("-1\n");
	else printf("%d %d %d\n", mina[i], maxa[i], cnta[i]);
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 59ms
memory: 27656kb

input:

ejdzjvhfouduzopksvrmktcerxlnwcaspfztkzjcguzbkloievrzdxutubkvhpwzedsebpjscfhswjzqanpdwjlljxubvoyuaauwxyyjzoryfthvjkbwqbippholdbmrpszwzuhkxxktzclviearfkwdegsrwjttxymiepczmgilmplnvulwbmlngpkxgcvyizlpzwuqfqxcneyjtkozanlkwkdqzsjjberqnyvlqoxrrkpbhyrlugfkwiepnjewhqjqhsursplcpznzfljvdzcrigjjxsmegrrhzetnvzql...

output:

-1
1 1 1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
1 1 1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
1 1 1
-1
-1
-1
-1
-1
-1
-1
...

result:

ok 50000 lines

Test #2:

score: 0
Accepted
time: 42ms
memory: 31368kb

input:

mmrqqmrrqmkhmkmkmkbhmhmgncyrhnbrrimkmkmktmkhmkhmkhqbsqbmmmmmmkhmkhqkhmkhqmkmkmkmkappsohmkhqkhmhmkhqkhmmbqbmmmmmmqbmmmmmmuwyvkbhkbhkbhkbhkbhbqbmmmmmmqbqbmmmmmmqbqbmmmmmmqihqkhmkhqmkmhqkhmkhqmkmymkhqmkmyvdnjurrimkmkmktrrimkmkmktrrimkmkmktynjurrimkmkmktnjurrimkmkmktnjurrimkmkmktrhnbrrimkmkmktrhnbrrimkm...

output:

556 1853 2
13 1254 7
12 1493 9
405 1071 2
1119 1119 1
6 394 5
1137 1137 1
4 795 3
6 1326 4
4 1084 4
359 1613 3
5 288 4
16 1738 7
79 710 2
7 1500 8
589 589 1
138 1510 3
136 1774 8
4 1886 10
2 1978 4
4 1886 10
589 1944 2
948 948 1
201 1498 2
345 345 1
11 1366 2
136 838 4
310 1665 2
39 1761 3
1093 2448...

result:

ok 50000 lines

Test #3:

score: 0
Accepted
time: 43ms
memory: 25476kb

input:

oygebgetdmkgpucchnlxqbwrubfyhdkewizorsidqwodzzwrubfyhdwrubfyhdxsqtgmfdcemxzlnjhjtugmfdcemgmfdcemgmfdcemgmfdcemubfyhdkubfyhdkubfyhdkubfyhdkubfyhdkrymyzvetdmkgpuetdmkgpuetdmkgpuetdmkgpuetdmkgputqbqjjyxmkkubfyhdkkubfyhdkkubfyhdkkubfyhdkkubfyhdkkubfyhdkkubfyhdkqbadmavokubfyhdkubfyhdkubfyhdkubfyhdkubfyhd...

output:

2 9058 4529
2 8326 4163
2 6010 3005
2 5722 2861
2 5022 2511
2 8146 4073
1 4949 2475
1 2951 1476
2 8922 4461
2 5546 2773
1 7117 3559
1 5465 2733
2 7464 3732
2 5058 2529
1 7669 3835
1 7789 3895
1 7485 3743
1 5273 2637
2 5058 2529
2 5998 2999
1 6199 3100
1 4345 2173
1 4831 2416
2 8634 4317
1 5993 2997
...

result:

ok 50000 lines

Test #4:

score: 0
Accepted
time: 43ms
memory: 33712kb

input:

jnnoffjsyjmzfwfcdagqxcoyzfjtjdnmjnnzczzybsmzfwfofviuoinoffjsnzczzyawfofkpetfzfmdagrcuetbvmpetfkwcusxogogyjpxgqxcoreiwqdsxwykpoxfmxfiodunzczzybsmzfbsjysmzxlmoprcuetbvmpyzrzfbsjyphlxzybsmzfwfofviuoivetfkwcusxogogyjpxgrhhzfjtjdinnoffjsyjmemogogyjpxgqxljuwpdrbzzretfkwcuzmzfwfofvpsfoprcuetbvmtcfwfcdagqxf...

output:

1 967 2
8 1211 2
499 499 1
1535 1535 1
230 230 1
2099 2099 1
509 509 1
332 332 1
608 608 1
1619 1619 1
1087 1087 1
1525 1525 1
1079 1079 1
455 455 1
309 309 1
245 245 1
433 433 1
1596 1596 1
446 446 1
887 887 1
1497 1497 1
841 841 1
40 486 2
50 963 2
1349 1349 1
1 1408 2
1291 1291 1
1939 1939 1
85 1...

result:

ok 50000 lines

Test #5:

score: 0
Accepted
time: 53ms
memory: 29296kb

input:

lpqpqppqpqppqppqpqppqpqppqppqpqppqppqpqppqpqppqppqpqppqpqppqppqpqppqppqpqppqpqppqppqpqppqppqpqppqpqppqppqpqppqpqppqppqpqppqppqpqppqpqppqppqpqppqpqppqppqpqppqppqpqppqpqppqppqpqppqppqpqppqpqppqppqpqppqpqppqppqpqppqppqpqppqpqppqppqpqppqppqpqppqpqppqppqpqppqpqppqppqpqppqppqpqppqpqppqppqpqppqpqppqppqpqpp...

output:

2 28208 12
1 22196 11
1 12549 9
1 13112 8
1 16603 12
3 6828 11
3 24424 15
2 21454 13
1 24922 8
1 22665 13
1 25809 13
2 23988 11
2 8681 10
1 20581 12
2 16257 10
1 21957 9
1 17814 13
3 14866 12
2 25876 11
1 19372 9
3 17633 9
5 18588 10
1 22565 13
3 22568 8
2 12532 10
5 20711 11
1 21671 11
1 16798 12
3...

result:

ok 50000 lines

Test #6:

score: 0
Accepted
time: 376ms
memory: 45332kb

input:

fqmsihplprqnqqiinahlxivhpazabczbkroqhvdwipsedcwdoajmuyaymjktgpmbccmcpkuoqovmzqkehohupeltdznfvzvrwswhiyatdacoxgmjkrkmqkzlrzclxsowurnvxverfihziptkxgedqhpzncibpyppbttpbiyflvqwgmtdeseeqmgrvvbiedspjocdrvkwbgbmjaloqmgulyofflkmqzaqhitggjhtfuomgwcuinjepkzutyaryhkidybadvebzkyfnrutdllpkndcauptzjgqtxkgrehvudia...

output:

-1
1 1 1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
1 1 1
-1
-1
-1
-1
-1
-1
-1
-1
-1
...

result:

ok 200000 lines

Test #7:

score: 0
Accepted
time: 309ms
memory: 40408kb

input:

mffmffmfmffmffmfmffmfmffmffmfmffmffmfmffmfmffmffmfmffmfmffmffmfmffmffmfmffmfmffmffmfmffmffmfmffmfmffmffmfmffmfmffmffmfmffmffmfmffmfmffmffmfmffmfmffmffmfmffmffmfmffmfmffmffmfmffmffmfmffmfmffmffmfmffmfmffmffmfmffmffmfmffmfmffmffmfmffmffmfmffmfmffmffmfmffmfmffmffmfmffmffmfmffmfmffmffmfmffmfmffmffmfmffm...

output:

1 112967 15
1 75896 12
2 105017 12
1 45210 11
1 107089 15
2 116198 12
3 104510 11
2 86195 14
1 81422 14
3 54081 11
1 74329 12
1 54221 10
2 92660 12
1 80199 13
5 62623 11
2 95314 11
5 81685 15
3 96030 12
2 61769 14
2 27276 11
1 81990 16
1 52500 15
1 115632 15
2 55405 9
1 68620 13
3 110426 14
2 66016 ...

result:

ok 200000 lines

Test #8:

score: 0
Accepted
time: 404ms
memory: 45972kb

input:

orjzbzsidimqhlftjqjrpzgdpsmufzccurjnsvotlbrhtjikcbrbsyhxubacgdvxuuhcidpbxdjomhvwtqxlvrykwaupthxsnhpahixdshtsewxwudmsehqcljnufoigeqjagrflaaindvcdzaesncrucsajyxuyailrfqtybxgxalfanbavdbypemsbaoayclsmsndnjxdzvrfsbjnabxixbolvblkuwkhshfscfdxjvgghdsbiirmaogofcwetqwwovcylgwnqwfjchgsvukdtkkacuotolylqcyndisnu...

output:

-1
-1
-1
-1
-1
-1
1 1 1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
1 1 1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
1 1 1
-1
-1
-1
1 1 1
-1
1 1 1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
1 1 1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
...

result:

ok 200000 lines

Test #9:

score: 0
Accepted
time: 250ms
memory: 38992kb

input:

ijdkzqqczzxhfqcdzzzzhdaehqqqqqczebmipqmmimimimiczeczeoguwkzebmizebmizebmifqmiczmifmifmifdkzdkzdkzihhlcdzzzzhcdzzzzhcgcifmifmifivskhjdhcdzzhcdzztfdkzdfdkzdfdkzdfdkzdzhcdzztfdkzdfdkzdzhcdzztfdkzdfdkzdbjxgckbuyqltftftftftftfqqczebmipqmmimimcbuyqlbuyqldzzzzhcdzzzzhcgcifmifmifidzzzzhcdzzzzhcgcifmifmifidz...

output:

711 2386 2
1 4155 2
954 7695 3
182 4363 2
1 2610 3
1 5938 4
3764 3764 1
5831 5831 1
12 3704 3
52 3402 2
3377 3377 1
3225 3225 1
2144 2144 1
651 3703 3
1072 5253 2
3782 3782 1
1625 5806 2
1 2549 3
5927 5927 1
6245 6245 1
9 5089 2
8 7115 5
5360 5360 1
2004 2004 1
28 8104 4
1398 1398 1
14 4560 3
3859 3...

result:

ok 200000 lines

Test #10:

score: 0
Accepted
time: 247ms
memory: 38564kb

input:

rrrrtrtrrrrrgkrrrbenhabenbenhahahayahaaharrrrgbbebebeoihannnnnhnhahahhahahhahahskkkkkkkkrrrgrrrgrrrgrrrgrrrrrrrrrrrrqfvlfyahaaharrryahaaharrrqqynhahahayahaahanhahahayahaahanhahahayahaahabebebeoibebebeoibebebeoirzmcnjrbebebeoihanbebebeoihanrrrgrrrgrrrrrrrrrrrgrrrgrrrrrrrroyahaaharrrrgbbebebeoihannnnn...

output:

72 5023 2
4157 9554 2
1 3413 3
1 4409 3
1832 4524 2
150 7215 3
136 4348 4
2836 2836 1
1 9327 5
638 3330 2
4934 4934 1
1194 6138 2
10 7723 4
2 4773 5
19 5550 3
66 7619 2
2534 5249 2
1398 4113 2
10 7308 4
1044 8349 3
1 7619 4
554 6191 2
4 3071 2
4195 9832 2
4346 9983 2
1 8200 4
710 7775 3
93 4840 2
2 ...

result:

ok 200000 lines

Test #11:

score: 0
Accepted
time: 220ms
memory: 35248kb

input:

kynffoqykynffoqubztubzypkpeakynkynkynarnftsskwnlynkynynkynynkynynkynkxwkwnlynkynykwnlynkynykwnlynkynycfjpnbqqcobqqcbqqcbqqcbqqcbqqcbqqcbqqcbqqcbqqcbqqctzkxpakynkyakynkyakynkyakynkyyuwjfjpnbqqcobfjpnbqqcobfjpnbqqcobfjpnbqqcobfjpnbqqcobfjpnbqqcobwtfmepycsfvewueeynkynkynarynkynkynarynkynkynarynkynkynar...

output:

1 39521 4942
3 11611 1452
4 36044 4506
1 25345 3170
8 25776 3222
1 25052 3133
2 31074 3885
2 26682 3336
2 35223 4404
1 21910 2740
1 27545 3445
1 41518 5191
2 37111 4640
1 24649 3082
2 19909 2490
1 40006 5002
2 41690 5212
2 31810 3977
1 22564 2822
1 38833 4856
1 26948 3370
8 35672 4459
1 29620 3704
5...

result:

ok 200000 lines

Test #12:

score: 0
Accepted
time: 222ms
memory: 34952kb

input:

amezpqzdfcezezujzivlcxqpuafilacgywkmlzdfcezdfcejbzeamuszlvblfcezezufcezezufcezezudcezezufcezezufcezezufujpuafilacgypuafilacgypuafilacgypuafilacgydsnrlybfdcezezufccezezufccezezufccezezufccezezufccezezufccezezufcezezezezezezezezezezezezezezezezezezezezezezezezezezezezezezezezezezezezezezezezezezezezez...

output:

1 27489 27489
1 30282 30282
1 25244 25244
1 26472 26472
1 22122 22122
1 19073 19073
1 30941 30941
1 28853 28853
1 31504 31504
1 25281 25281
1 22887 22887
1 25247 25247
1 32188 32188
1 29211 29211
1 25912 25912
1 26458 26458
1 23533 23533
1 15452 15452
1 25101 25101
1 31263 31263
1 32800 32800
1 3038...

result:

ok 200000 lines

Test #13:

score: 0
Accepted
time: 256ms
memory: 39188kb

input:

vwerjycxrmqpxskgskyjywebpamlztkiamenclhqluhvviwhkkiamlztpqcjhcxnlswiupqiciwhkkiamjelcxrmqpxswghwzcxnllswiknayqgbhtpgtzjtkiamenclkyjywebpamlxfssxxrxhiigijssxxrxhkyjylswghwzcxnllswbhkabdeolswiknayqgbhtyxpvapbmjpbssxxrxhiigbxfwecjhtsqokiamenclkyjywebpamlxfssgpbhkabdeolswiknwzcxnllklclhqluhvvihiigbxfwec...

output:

6033 6033 1
6926 6926 1
5629 5629 1
6942 6942 1
5535 5535 1
25 3797 2
7331 7331 1
9 4269 2
1984 1984 1
4918 4918 1
6056 6056 1
1519 1519 1
3657 3657 1
3044 3044 1
1894 1894 1
4921 4921 1
15 3344 2
4355 4355 1
2931 2931 1
29 3977 2
4444 4444 1
4537 4537 1
4501 4501 1
5809 5809 1
5055 5055 1
2676 2676...

result:

ok 200000 lines

Test #14:

score: 0
Accepted
time: 256ms
memory: 38952kb

input:

kwgyrspsryokpskkyrdyqdgcgkkywbgcddakpseyrdykluycjegkkyebsykymlavgfknkyvgtpjrdqlavgfknzhajgtpjrdqlaijxbltklzxyrdgtocqdjdqlaijuwjelkksryokpskkyrmqfpqgueodrobtrsprztzrcgxovqejlhdspkpskkyrqwtjnypueeovqejzzdhuxwkluycjegkgkkywbgcddakpseyrdyklucghpdqlavgfknzhajgtpjrdqlaijxghcmsmdhbkmsprztzrcgxovqejlhpiiitt...

output:

3803 3803 1
36 1549 2
4383 4383 1
4312 4312 1
5392 5392 1
3874 3874 1
2427 2427 1
1640 1640 1
4711 4711 1
2711 2711 1
5237 5237 1
1190 1190 1
1059 1059 1
2934 2934 1
4117 4117 1
5489 5489 1
1540 1540 1
2849 2849 1
4968 4968 1
1 4279 3
2 7188 2
5365 5365 1
3451 3451 1
5779 5779 1
3546 3546 1
2987 298...

result:

ok 200000 lines

Test #15:

score: 0
Accepted
time: 308ms
memory: 40616kb

input:

exexeexefbfbffbfbffbffbfbffbfbffbffbfbffbffbfbffbfbffbffbfbffbfbffbffbfbffbffbfbffbfbffbffbfbffbffbfbffbfbffbffbfbffbfbffbffbfbffbffbfbffbfbffbffbfbffbfbffbffbfbffbffbfbffbfbffbffbfbffbffbfbffbfbffbffbfbffbfbffbffbfbffbffbfbffbfbffbffbfbffbffbfbffbfbffbffbfbffbfbffbffbfbffbffbfbffbfbffbffbfbffbfbffb...

output:

3 79473 13
1 116370 15
2 39673 13
1 84202 18
3 74125 13
1 90780 15
2 103326 13
1 82127 11
1 108341 12
1 79618 13
2 79507 12
1 113524 14
1 76401 10
1 46801 11
2 98817 16
2 78331 13
1 101763 13
3 57746 9
1 62773 12
2 97327 10
1 87271 13
1 93431 10
2 67927 11
1 61409 14
2 52925 11
2 55206 10
1 69597 14...

result:

ok 200000 lines

Test #16:

score: 0
Accepted
time: 1ms
memory: 22528kb

input:

uhsubldcdaudhstzvgzupbwirwdzurvqhluslsnqibiafvzlqpuizuylyvxwuepkmhovjqrwodehrjadypwuswakxpfiegtduvzwkyryiisnkwgngzcsntnrbkusvxnfgbpgplwmvktrghwkcshkkfcdoaommcgwdwvyujxxemlnqgoyrewkzhgcqihjmxgkuzgeibdntundevqayklxvphtmktixsribrfdcxchnheljrojnoijxdvulwrhgwpcpppzinbyprbxtyzsjvphadugrczulhluiarlhfgxiugv...

output:

-1
-1
-1
-1
-1
-1
-1
1 1 1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
1 1 1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
...

result:

ok 2000 lines

Test #17:

score: 0
Accepted
time: 1ms
memory: 18396kb

input:

hhvtukffcovscoldtuzwhvmjcococydtbbkavtukhvmdvmjcvmjcvmjcvtuvtuvtuvtutcococococorkcococcococsmjcvmjcvmjmjcvmjcvmjcvmcvmcvmcvmwiotukffcovsctukffcovsciqmcvmwmcvmwmcvmwzzzzzzzzzzzpkvtutcococococovtutcococococovtutcococococowiotukffcovscwiotukffcovscvtuvtutcococococorkcococcocococovtutcococococowiotucoco...

output:

33 33 1
22 99 2
34 111 2
1 82 3
47 124 2
2 87 3
21 98 2
60 60 1
57 57 1
43 43 1
1 78 2
42 119 2
65 142 2
19 96 2
1 103 3
35 112 2
75 75 1
15 92 2
25 102 2
1 46 2
1 37 2
1 135 3
68 68 1
15 92 2
2 59 2
2 79 2
23 23 1
1 122 3
1 116 3
53 53 1
2 96 4
13 90 2
6 37 2
25 102 2
2 57 2
68 145 2
1 30 2
6 28 2
...

result:

ok 2000 lines

Test #18:

score: 0
Accepted
time: 2ms
memory: 24348kb

input:

vydcsvacjwnohxvacjwnovacjwnodhjehjehjehjehjewovacjovacjovacjovacjovacjovacjovacjfjejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejejezamlvyywpvacjovavacjovavacjovavacjovavacjovavacjovavacjovavacjovavacjovavacjovavacjovavacjovavacjovavacjovavacjovavacjovavacjovavacjovavacjovaeshaxlx...

output:

1 783 783
1 619 619
1 772 772
1 588 588
1 638 638
1 721 721
1 631 631
1 445 445
1 775 775
1 769 769
1 807 807
1 507 507
1 564 564
1 795 795
1 638 638
1 578 578
1 791 791
1 439 439
1 833 833
1 680 680
1 583 583
1 853 853
1 571 571
1 569 569
1 753 753
1 778 778
1 672 672
1 689 689
1 797 797
1 661 661
...

result:

ok 2000 lines

Test #19:

score: 0
Accepted
time: 2ms
memory: 18392kb

input:

cctcwdmpbnuaqsswtcgojerqmojesjsyxvkmakjcmakjxdtqrtyrbqcctcwdpbnuaqeqnecieqtpsonfzfwtcgojbbwdpbnuaqegitnlebsecieqtpsiojttjglhtrtyrnlhtrtyrnybghhpxlswdcjsyxvkxuonfzfwtcgoptaituxrxebjubsvgrkxdadttrtyrnlhtrtyrnybgmlopfpmswgoptaituxrxebjyybsecieqtpsifokmopsonfzfwtcgojbbwdgoptaituxrxebjubsvgrkxdadthgcrtyr...

output:

43 43 1
49 49 1
74 74 1
38 38 1
4 42 2
66 66 1
45 45 1
75 75 1
37 37 1
11 60 2
16 54 2
22 22 1
33 33 1
11 11 1
24 24 1
9 9 1
28 28 1
61 61 1
44 44 1
74 74 1
1 38 2
38 38 1
21 21 1
53 53 1
69 69 1
62 62 1
39 39 1
12 12 1
44 44 1
39 39 1
24 24 1
48 48 1
63 63 1
28 28 1
24 24 1
18 18 1
58 58 1
37 37 1
...

result:

ok 2000 lines

Test #20:

score: 0
Accepted
time: 1ms
memory: 18396kb

input:

crffrfbiibiibibiibiibibiibibiibiibibiibiibibiibibiibiibibiibibiibiibibiibiibibiibibiibiibibiibiibibiibibiibiibibiibibiibiibibiibiibibiibibiibiibibiibibiibiibibiibiibibiibibiibiibibiibiibibiibibiibiibibiibibiibiibibiibiibibiibibiibiibibiibiibibiibibiibiibibiibibiibiibibiibiibibiibibiibiibibiibibiibii...

output:

2 318 6
2 397 6
1 512 9
2 450 7
3 568 6
2 335 6
5 649 4
2 423 8
5 492 6
1 455 9
2 960 10
1 265 5
1 539 8
3 605 6
1 619 4
8 851 7
2 570 6
1 411 8
3 956 9
1 664 8
2 615 8
-1
1 579 7
1 815 10
2 539 9
5 822 8
2 332 6
1 791 8
1 566 6
2 801 8
-1
3 841 7
1 656 7
2 675 9
1 403 6
1 839 8
1 342 8
1 556 9
1 59...

result:

ok 2000 lines