QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#522563#3813. Text ProcessormshcherbaAC ✓119ms60660kbC++203.7kb2024-08-17 01:52:522024-08-17 01:52:53

Judging History

This is the latest submission verdict.

  • [2024-08-17 01:52:53]
  • Judged
  • Verdict: AC
  • Time: 119ms
  • Memory: 60660kb
  • [2024-08-17 01:52:52]
  • Submitted

answer

#include <bits/stdc++.h>
using namespace std;

#define FOR(i, a, b) for(int i = (a); i < (b); i++)
#define RFOR(i, a, b) for(int i = (a) - 1; i >= (b); i--)
#define SZ(a) int(a.size())
#define ALL(a) a.begin(), a.end()
#define PB push_back
#define MP make_pair
#define F first
#define S second

typedef long long LL;
typedef vector<int> VI;
typedef vector<LL> VL;
typedef pair<int, int> PII;
typedef pair<LL, LL> PLL;
typedef double db;

const int LOG = 18;
const int N = 1 << LOG;

/**
 * To count number of occurances of string
 * calculate sum of cnt on link subtree
 */

const int AL = 26;

struct Node
{
	int g[AL];
	int link;
	int len;
	int cnt;
	Node(): link(-1), len(0), cnt(1)
	{
		fill(g, g + AL, -1);
	}
};

struct Automaton
{
	vector<Node> a;
	int head;
	Automaton(): a(1), head(0) {}
	void add(char c)
	{
		// change to [0 AL)
		int ch = c - 'a';
		int nhead = SZ(a);
		a.PB(Node());
		a[nhead].len = a[head].len + 1;
		int cur = head;
		head = nhead;
		while (cur != -1 && a[cur].g[ch] == -1)
		{
			a[cur].g[ch] = head;
			cur = a[cur].link;
		}
		if (cur == -1)
		{
			a[head].link = 0;
			return;
		}
		int p = a[cur].g[ch];
		if (a[p].len == a[cur].len + 1)
		{
			a[head].link = p;
			return;
		}
		int q = SZ(a);
		a.PB(Node());
		a[q] = a[p];
		a[q].cnt = 0;
		a[q].len = a[cur].len + 1;
		a[p].link = a[head].link = q;
		while (cur != -1 && a[cur].g[ch] == p)
		{
			a[cur].g[ch] = q;
			cur = a[cur].link;
		}
	}
};

struct Fenwick
{
	int n;
	VI t1, t2;
	
	Fenwick(int _n = 0)
	{
		_n = max(_n, 2);
		n = 1 << (32 - __builtin_clz(_n - 1));
		t1.assign(n, -N);
		t2.assign(n, -N);
	}
	
	void upd(int i, int x)
	{
		for (int j = i; j < n; j |= j + 1)
			t1[j] = x;
		for (int j = n - 1 - i; j < n; j |= j + 1)
			t2[j] = x;
	}
	int query(int l, int r)
	{
		int ans = -N;
		for (int j = r; j >= 0; j = (j & (j + 1)) - 1)
		{
			if ((j & (j + 1)) >= l)
				ans = max(ans, t1[j]);
		}
		for (int j = n - 1 - l; j >= 0; j = (j & (j + 1)) - 1)
		{
			if ((j & (j + 1)) >= n - 1 - r)
				ans = max(ans, t2[j]);
		}
		return ans;
	}
};

VI g[N];
int tin[N], tout[N], t;
int par[LOG][N];

void dfs(int v)
{
	tin[v] = t++;
	FOR(i, 1, LOG)
		par[i][v] = par[i - 1][par[i - 1][v]];
	for (int to : g[v])
	{
		if (to != par[0][v])
		{
			par[0][to] = v;
			dfs(to);
		}
	}
	tout[v] = t;
}

pair<LL, VI> f(const string& s, int w)
{
	int n = SZ(s);
	Automaton a;
	VI nodes;
	LL cntInit = 0;
	FOR(i, 0, n)
	{
		a.add(s[i]);
		nodes.PB(a.head);
		if (i < w)
			cntInit += a.a[a.head].len - a.a[a.a[a.head].link].len;
	}
	FOR(i, 0, SZ(a.a))
		g[i].clear();
	t = 0;
	FOR(i, 1, SZ(a.a))
		g[a.a[i].link].PB(i);
	dfs(0);
	Fenwick fw(SZ(a.a));
	auto maxEndpos = [&](int v)
	{
		return fw.query(tin[v], tout[v] - 1);
	};
	VI res(n - w);
	FOR(i, 0, n)
	{
		if (i >= w)
		{
			int v = nodes[i];
			if (maxEndpos(v) - a.a[a.a[v].link].len < i - w)
			{
				RFOR(j, LOG, 0)
				{
					int p = par[j][v];
					if (p != 0 && maxEndpos(p) - a.a[a.a[p].link].len < i - w)
					{
						v = p;
					}
				}
				v = par[0][v];
			}
			res[i - w] = v == 0 ? w + 1 : max(i - maxEndpos(v), w + 1 - a.a[v].len);
		}
		fw.upd(tin[nodes[i]], i);
	}
	return {cntInit, res};
}

int main()
{
	ios::sync_with_stdio(0); 
	cin.tie(0);
	string s;
	int q, w;
	cin >> s >> q >> w;
	int n = SZ(s);
	auto [c1, d1] = f(s, w);
	reverse(ALL(s));
	auto [c2, d2] = f(s, w);
	reverse(ALL(d2));
	vector<LL> ans(n - w + 1);
	ans[0] = c1;
	FOR(i, 0, n - w)
		ans[i + 1] = ans[i] + d1[i] - d2[i];
	assert(ans.back() == c2);
	while (q--)
	{
		int i;
		cin >> i;
		i--;
		cout << ans[i] << "\n";
	}
	return 0;
}

详细

Test #1:

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

input:

aabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklbcdefghijklaabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklbcdefghijklaabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijk...

output:

1

result:

ok single line: '1'

Test #2:

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

input:

h
1 1
1

output:

1

result:

ok single line: '1'

Test #3:

score: 0
Accepted
time: 5ms
memory: 22556kb

input:

vwjwmutobxwxlrsfaobyjfvoiyorjrmpmffhawvnzmysksisyydwcnxgfeebxvjxkutcnfewrhzfwstfgwlkrhxerwnlajwtbqwclxthelwmubhohmaasdhfmrbwxdpsuiqtidpcymhxzpuraiwlcnunlxwmdwbilygplhhhsapknfkfgixzfdubnsncxrkitmlyowfxpkoxkyefebtodtpmaokqekayutrrsrpdrzcayejjldwqcjfbkkzqcalpvymyfpgcktduokmhzxflkuxrspskxojfamnbwvkcqdui...

output:

19896
19903
19897
19903
19895
19901
19901
19890
19902
19892
19895
19890
19901
19902
19898
19895
19899
19894
19899
19898
19897
19901
19903
19902
19898
19901
19889
19893
19900
19902
19902
19895
19899
19897
19902
19898
19894
19897
19895
19903
19899
19904
19902
19898
19899
19900
19895
19898
19896
19902
...

result:

ok 801 lines

Test #4:

score: 0
Accepted
time: 4ms
memory: 22512kb

input:

uoqfzyauodpiuajlubsvwhnhocuabggiyqyzmpjjclfkplsvgtvwavaffixcsczwrzjwbzpoxpdniimytyhkdgukcnjldmjtfeaxrghqgrtigjeevooernhuyjjqhxlxsyaieiuphcqepnotevpxyxosnweguftdpxjshhiqcwqzxbvqbwndmoqcvvmedomuacmbstvmrwvuqaowtmypodcdqqsajbxfcgcykysoemtqhttftzzisfnmtborexdsufbxwtvpymepuqlzbrxspnbvhigaszqwxeurlkfgzcyk...

output:

124639
124650
124645
124648
124644
124641
124642
124650
124644
124642
124641
124643
124650
124646
124642
124645
124638
124644
124650
124644
124647
124650
124646
124642
124648
124644
124648
124641
124636
124643
124646
124641
124648
124642
124640
124641
124642
124644
124639
124640
124641
124637
124640...

result:

ok 501 lines

Test #5:

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

input:

zcaexqnlgdgmbsxqxondhmoiydslhsbmuupsnybhpsuojmzhrrnmezrtdjsdxrzyhsvqvsdifxjsrujqmhvgiqiqhvjwfhqetgclyigdefthqojxokfyqbhoqllcunrmylvgvuguwyvgpwahcysdggiqrdigufvnsphdkubzgrngogzkwamztvonzjohrgvcwnmhlfsdsswhslfnozyyvjhixraeggmdjxhcqwfursolwsnwafxobanaoknjluugyobggfrkodkoxjkpjjinvegqpmpzpfrmmeohfflnlbqr...

output:

363003
363007
363007
363010
363005
363002
363000
363004
363007
363007
363004
363011
363006
363001
362996
363008
363007
363002
363006
363010
363009
363002
363011
363007
363000
363010
362996
363012
363006
363010
363006
362998
363007
363009
363001
363004
363006
363007
363006
363006
363007
363006
362996...

result:

ok 148 lines

Test #6:

score: 0
Accepted
time: 93ms
memory: 58228kb

input:

juzjdnbvgcimcmamvwhftxlxqtgzydnerbodyxozhytmgfzjqytgtiqtjdshnjovtblnkyaxofcgymiruovccchxihfwpgiyabmatpxswsgorenokrvwjdhvremvyizfppvntcvpiglqtontoryoqlgapvrjwcogqupohcsmfxnsieonjuplvnmynqblprouiowemzsfknregonbhvlzzqckuuejkuddtztavfpselqdrqeqjbolewxdkcgtwdpvxnupgdraecjngmzeldihfybzgupogpexubkuvpuxfmhl...

output:

199962302
199962198
199962296
199962355
199962324
199962289
199962130
199962187
199962298
199962231
199962236
199962304
199962361
199962159
199962191
199962193
199962297
199962324
199962318
199962315
199962236
199962159
199962342
199962207
199962249
199962282
199962226
199962257
199962214
199962208
...

result:

ok 80001 lines

Test #7:

score: 0
Accepted
time: 94ms
memory: 57792kb

input:

syshnllewpgkeatmxcjrizhrosmhgdmwachmclrsgtnwsbezjeeiyvbggiegdkndalyddgrnxqncwdvytxdrmkihngpahllbxdfuaaswtgpuhwwrcfypidwrugcbmckofugfmwuovgmzytwmgaqnevbodbgazsjyrcftokyzcwwfkojvwnwwzdlkgbzdnatzykmjnnrzgeneanlalichiuekufyqvmcjttdrgtkwrmczzivhloxpkcsghcijpkcuqeczdjxaqvechhbdehppaxwiijtvwovfrjlwyyzxavvj...

output:

799914664
799914650
799914661
799914659
799914666
799914681
799914679
799914596
799914675
799914644
799914652
799914641
799914681
799914662
799914666
799914663
799914649
799914589
799914676
799914730
799914666
799914649
799914665
799914649
799914674
799914653
799914666
799914624
799914651
799914631
...

result:

ok 60001 lines

Test #8:

score: 0
Accepted
time: 86ms
memory: 57736kb

input:

hewueccnuowvhxlncsmcpjwtexkgzrvmrrcsqsgweryysixaqqwwqjkudbinoaidttgbsrxfhjiafzpeliciqzhoacniiiwievcwnpsbvffllinuqrgglbrwfehxdzjovwncxdnxpmrqwxobumdograeaceovwyjldoyyliwnulkhgvcebzfaajgsnrkzdlbbffdipumiosnflyfblgwqgbduuvfxkwmqkishmhnfrtbvhtigcvoguqfzxyxyqgnqgxypdrxdwqvvgnibnbstjcslifgynckonjowdhupzev...

output:

1249889626
1249889580
1249889620
1249889576
1249889537
1249889623
1249889604
1249889613
1249889584
1249889551
1249889595
1249889618
1249889553
1249889578
1249889603
1249889559
1249889631
1249889561
1249889553
1249889559
1249889557
1249889599
1249889538
1249889553
1249889597
1249889541
1249889560
124...

result:

ok 50001 lines

Test #9:

score: 0
Accepted
time: 77ms
memory: 57860kb

input:

ethqkqfhfutukoldnznzdqmsgtngmltwhrcuahsnjcawvuiowqhiqgefhrjvmbuotnfsubcidzsjmtxlnwvigwktflsonoxtnektwvxvnpapqxmsxuystjcdfstzdsccercqyqtbfliscujqvisujewuxhrkkuqgtqpfipkjhaxoeulscxmojopgymoermnaysvkvtkskdxthbxvnwewkpafbpgjiumyzuauoocplygefhrygddhyvpteqsfomnqnqrijazjqbrtpejlorbpilrfklsxrwsleytfxidjpjei...

output:

1799863790
1799863768
1799863767
1799863736
1799863748
1799863717
1799863751
1799863788
1799863789
1799863797
1799863694
1799863754
1799863737
1799863810
1799863779
1799863741
1799863776
1799863772
1799863765
1799863719
1799863756
1799863741
1799863769
1799863805
1799863739
1799863786
1799863784
179...

result:

ok 40001 lines

Test #10:

score: 0
Accepted
time: 70ms
memory: 57424kb

input:

hydhahfcvooolxgfrnbaatarltextvnhvvrpfighsfhkzpeudsqxvuzohdmzwlabfteqbfctdubxuyivyqyactqolebuojpzksyqhfacunujbcposvcghiglqiygxsonqhwedicvadbsrjhaqcoxuqarodrmlgilpevbskthybubceaqaaukbnnshdddmnjlpkyfalxyibszdejsmkjyjpgkvnyxbtavxlbamutvhocgnlptvuxamucrkeyejkmqvspewlvlnfridkeeiqzawpysaoswrnxbznmdpkuqqwil...

output:

3199811245
3199811180
3199811274
3199811166
3199811143
3199811252
3199811166
3199811246
3199811256
3199811241
3199811170
3199811242
3199811239
3199811190
3199811170
3199811161
3199811160
3199811173
3199811232
3199811243
3199811244
3199811184
3199811250
3199811241
3199811256
3199811265
3199811262
319...

result:

ok 20001 lines

Test #11:

score: 0
Accepted
time: 65ms
memory: 57404kb

input:

igtescyxbpxjpejcjpqsmegebxzustibymlhxaajoexmrraglnxbdbnpuvxefevmdjwkphzopfagqvuudypeycizhwrpqkweppeffrusvjrrueludueybmuvjdjstvtxazugktmatowrzpiacgeaqnwdrwzrazoloriaqgxzgrbqypshlmrhpdjpmsqnschkemzdtwkugplvvpgfyhtqecezdiprxkwqiuswtsbeoojuubqmeeslgzktiixcdsueriviteqhwktiucoetuyfjsbjrzpmpqcrshmhnslftkjg...

output:

4049784531
4049784611
4049784543
4049784550
4049784530
4049784554
4049784543
4049784553
4049784585
4049784552
4049784609
4049784542
4049784611
4049784551
4049784581
4049784553
4049784563
4049784604
4049784533
4049784601
4049784576
4049784559
4049784612
4049784623
4049784552
4049784559
4049784564
404...

result:

ok 10001 lines

Test #12:

score: 0
Accepted
time: 52ms
memory: 56700kb

input:

ghogqtpbqromgltpueiafqdeoybvdcqipirofvyqlvuwvnhzjgppgkidllvzxyqajpaylnjqbudpywvnbefmjqlvkckfodtsxlqrcoiozpksfprthjjrjpulgxfqvdgoudtdbvairugnczbzzozrvpkjuzwitxwxacfdlxahpzvtffqexfpkeyelmxmjhiyscxblnqeliyyfgppquckmtbaduontlrbbtyljubvftlmyahyeyomsvcsmwnbwcyfaijikssmzjgjaxfuzblxhwksktecdpykmjduhpezzqwiy...

output:

4998457700
4998457700
4998457700
4998457698
4998457699
4998457699
4998457700
4998457699
4998457699
4998457697
4998457699
4998457699
4998457699
4998457698

result:

ok 14 lines

Test #13:

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

input:

aabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklbcdefghijklaabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklbcdefghijklaabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijk...

output:

1
1
1
1
1
1

result:

ok 6 lines

Test #14:

score: 0
Accepted
time: 105ms
memory: 57580kb

input:

wtpysanqqdopgxycudnyapftubepzmflglhnjqjsjhrcoexrlrtcauifvlszqbnfqednfehmtnatiflqdezcrccvpbzkdfofapnclpkmrnhqmbmdubvacmvxhwesxdrwakuopsrdnuzppkteltreoomugnzlouleanwfrdyhyrmwwxmmtevlresrravnrelljikthbarahniracnioddxokodeycrlsfrvjtnokfnqdwluhaojtzxfhgdklaxrprwymplerppgtbgyhvcwjtysuyjezkbhqyexaweptqitai...

output:

203
205
205
206
203
203
201
203
204
203
205
207
207
201
204
206
204
204
206
204
203
202
204
204
205
204
205
205
205
202
205
205
203
206
204
204
204
203
203
204
205
202
203
203
205
204
202
206
205
203
206
202
203
204
205
203
204
207
205
203
204
203
205
203
206
202
204
204
206
202
203
203
205
204
205
...

result:

ok 99981 lines

Test #15:

score: 0
Accepted
time: 110ms
memory: 57112kb

input:

dewqqhbjdmscxtekloodxzrlnseacujvlwdpkgupjmqanlzfulkwtpktabyqqocleasyjuzuuhhkndagrwyxpjcyikgdsgkyorwaktjyydxgmhylkgopxxelwgmkodywibtbtlybpoobheltlhvvxstkcemzldwhjyealcbdkayopgjxghcionacirttyqbbwffhaalevtptjdmsbvmvnkcybchvbddbpolhapbpcmksiwngfougkzdtcjxsxyttvcwwgfatjjqumxpdhakpnypsetculkdnkccitoruddvm...

output:

1246
1244
1246
1245
1246
1245
1242
1247
1243
1247
1247
1245
1244
1246
1245
1245
1246
1246
1242
1249
1242
1248
1248
1244
1247
1245
1246
1244
1247
1241
1249
1249
1245
1240
1247
1243
1245
1248
1242
1245
1248
1248
1246
1246
1243
1244
1246
1246
1245
1249
1242
1245
1246
1246
1246
1249
1244
1246
1245
1245
...

result:

ok 99951 lines

Test #16:

score: 0
Accepted
time: 85ms
memory: 60660kb

input:

mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm...

output:

50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
50000
...

result:

ok 50001 lines

Test #17:

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

input:

aabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklbcdefghijklaabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklbcdefghijklaabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijklabcdefghijk...

output:

3
3
3
3
3
3

result:

ok 6 lines

Test #18:

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

input:

xgbrzwesatgpjxogvdgsxtzraeomppyhmncmfzpfykpopdplulsztkqatvtulmsnnscoxxkbwfgynesshcoosrkzqxytzzmtcxqgezipmnhpqpxbzengshchauaxbnpjokyxzvtanjyynwuwzumddmyrrmtugoejfomekersevtvysoaxtevgflgcykdqlgtzlsedqbbdluvcwnyytotvxwyimgxjdypjpehwpdnnvutizxagtzsykxcgjikbnzkirjkmyvhlrvrootblggzwlqxbfeqahynumkeppvrwygb...

output:

4999757347

result:

ok single line: '4999757347'

Test #19:

score: 0
Accepted
time: 108ms
memory: 58228kb

input:

mcsfvirxgvvougxbeuoaxtlymptmdetrwmfwhnhmrwzftvohdlixxogvwbkzdgoilraspabjmdzixbepreauiztlocdetrtgizthzrxuqgbchezvppatzvnbpdeltxdrkujylbdvijvdhvmtxzdxtzvoulayklgyedhjztgtivojvoxuyxpindnamvxbriciqcanmazscmwwxgjakfedtiieokjzahjnfwwbhoqroypkfwtsqadkjgphipubbrdktqlrkjnasgvppdsqsxjmfzuobvbbsiwhyxhzrvwxqfqu...

output:

49983252
49983281
49983193
49983169
49983263
49983296
49983212
49983248
49983258
49983280
49983241
49983224
49983172
49983205
49983264
49983267
49983283
49983175
49983333
49983279
49983206
49983204
49983204
49983212
49983253
49983285
49983177
49983268
49983212
49983265
49983213
49983205
49983215
499...

result:

ok 90001 lines

Test #20:

score: 0
Accepted
time: 119ms
memory: 57188kb

input:

rzgublvlmavktictlaqhxvjiwjflopgpzerwbtbvuguhvhpbzpifkffqkfylgmjymawmhagpkwuwmykwhbbnwalgecfczpcibpocgugwwpejzoqmktylvzvlopwjoqmestndnajoklttqlfjxagfjmzurjejktmtjveixhbpfeqdxhtafqxkrwzekmuqybyiyrecotnpzkooiceigukxrbpdcvbibqwujtawfpvzzhrkemqssoxqhjvuwfhkxqcjsjzcehultllbcgdcovxskhtpcdegpgksrnlbjuseokkx...

output:

499005
499018
499021
499020
499026
499024
499030
499047
498995
499026
499018
499016
499018
499008
499012
499022
499012
499012
499023
499019
499020
499026
499021
499026
499010
499032
499008
499033
499017
499036
499021
499009
499027
499028
499010
499017
499007
499025
499014
499027
499035
499015
499014...

result:

ok 99001 lines

Test #21:

score: 0
Accepted
time: 97ms
memory: 57888kb

input:

howoivzkpgsubumnbsrrczgdlmxyugsgqhljgsemkomsrehweurqompbbfmxsnwxgpuislnmqqigbfmzfhvpikhyhhecbmymjwjgawswcnrmpyquullqmpmbupczvfozleakivomcougwtsoeqlqovtekmgvfwnqcazwtwtywdmvmkexpqnhqrwqoixafkjthaqerpkflsboancvdxncncongohwswxbqeifzyajyuuvkkttolrxrlhieefazbivlflnvnplebjiwuwgscprcdcrpepsrofuxixrxgxwdtxp...

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
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
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 100000 lines

Test #22:

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

input:

tngmmhocjo
6 5
5
6
1
4
3
2

output:

15
14
14
14
14
14

result:

ok 6 lines

Test #23:

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

input:

txxpimhvypzmbrgpdayablbpslmalwwujeojxykfbzdsazuzsfunnwwksahozwdehfnupkfkdigesxavnrijolvqooywhynrpbqzcwjtqfepmudpanyckkwxerlnztyppyvxqsvehhykhmpwmcvtzvfbvgslclhppivbyomdsutscliuwylnkqwaenjbriasqgckdmsaosdylqmgtvgxwgbeeikftmcijvljrhnkffvztgzxvmcszorfmbllstzroskvxptvfkewretsorusxrgxybrgavowhkvccusdjwsp...

output:

202
204
205
203
205
203
202
205
205
206
204
202
203
202
205
203
206
203
207
204
201
198
205
204
206
201
201
205
203
203
205
203
205
205
204
203
206
203
206
207
206
206
197
203
208
202
204
205
204
203
205
205
205
204
203
197
205
206
203
203
203
202
202
206
201
205
203
205
203
205
205
206
204
203
204
...

result:

ok 981 lines

Test #24:

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

input:

acat
2 3
1
2

output:

5
6

result:

ok 2 lines