QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#874845 | #897. 基本子串字典 | 2020HZ06 | AC ✓ | 1972ms | 454108kb | C++14 | 4.2kb | 2025-01-28 18:06:19 | 2025-01-28 18:06:20 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
#define pb push_back
const int N=200005,m=127,P=1000007,p=131;
const ull mod=212370440130137957ll;
int n,q;
char s[N];
ull W[2],pw[N];
mt19937_64 rd(time(0));
inline int get(int x,int l){return (x-1)/l+1;}
inline int L(int x,int l){return (x-1)*l+1;}
inline int R(int x,int l){return min(n,x*l);}
struct seq{//等差数列
int st=0,ed=0,d=0;//首项、末项、公差
seq seg(int l,int r){//提取
l=max(l,st),r=min(r,ed);
if(!st) return {0,0,0};
if(!d){
if(l==st&&r==st) return {st,ed,0};
return {0,0,0};
}
if(l>r) return {0,0,0};
l=(l-st+d-1)/d*d+st,r=(r-st)/d*d+st;
if(l>r) return {0,0,0};
return {l,r,l==r?0:d};
}
int len(){return d?(ed-st)/d+1:st>0;}//项数
bool in(int p){return p>=st&&p<=ed&&(d?(p-st)%d==0:(st&&p==st));}//是否出现
};
void upd(seq &a,int p){//更新
if(!a.st) a.st=p;
else if(!a.d) a.d=p-a.st;
a.ed=p;
}
seq merge(seq a,seq b){//合并
seq res;
if(a.len()==1&&b.len()==1&&a.st<b.ed) res.d=b.ed-a.st;
else res.d=max(a.d,b.d);
res.st=a.st?a.st:b.st,res.ed=b.ed?b.ed:a.ed;
if(res.st==res.ed) res.d=0;
return res;
}
seq cap(seq a,seq b){//求交
if(a.len()<b.len()) swap(a,b);
if(b.len()==0) return b;
seq res;
if(b.len()<=2){
if(a.in(b.st)) upd(res,b.st);
if(b.len()==2&&a.in(b.ed)) upd(res,b.ed);
}
else{
res.d=a.d,res.st=max(a.st,b.st),res.ed=min(a.ed,b.ed);
if(res.st>res.ed) res={0,0,0};
else if(res.st==res.ed) res.d=0;
}
return res;
}
struct Hash{//二元组(块编号、子串)哈希
int h[P],nxt[N],bl[N],ct;
ull s[N];
seq g[N];
void ins(int B,ull has,int p){
int key=(B*W[0]+has*W[1])%P;
for(int i=h[key];i;i=nxt[i]) if(bl[i]==B&&s[i]==has) {upd(g[i],p);return;}
++ct,bl[ct]=B,s[ct]=has,nxt[ct]=h[key],h[key]=ct,upd(g[ct],p);
}
seq fd(int B,ull has){
int key=(B*W[0]+has*W[1])%P;
for(int i=h[key];i;i=nxt[i]) if(bl[i]==B&&s[i]==has) return g[i];
return {0,0,0};
}
};
struct dic{//基本子串字典
int sa[N],rk[N],old[N],tmp[N],buc[N],pr[20][N]={0};
ull h[20][N]={0};//hash 值
Hash s[20];// hash 表
void solve(int d,int c){
int w=1<<d,ct=0;
for(int i=1;i<n;i++) if(sa[i]+w-1<=n&&rk[sa[i]]==rk[sa[i+1]]) pr[d][sa[i+1]]=sa[i];
for(int i=1;i+w*2-1<=n;i++){//计算哈希值
h[d+1][i]=(h[d][i]+pw[1<<d]*h[d][i+w])%mod;
s[d+1].ins(get(i,w*2),h[d+1][i],i);//更新块内信息
}
for(int i=n-w+1;i<=n;i++) tmp[++ct]=i;
for(int i=1;i<=n;i++)
if(sa[i]>w) tmp[++ct]=sa[i]-w;
memset(buc,0,sizeof(buc));
for(int i=1;i<=n;i++) buc[rk[i]]++;
for(int i=1;i<=c;i++) buc[i]+=buc[i-1];
for(int i=n;i>=1;i--) sa[buc[rk[tmp[i]]]--]=tmp[i];
memcpy(old,rk,sizeof(rk));
c=0;
for(int i=1;i<=n;i++){
if(old[sa[i]]==old[sa[i-1]]&&old[sa[i]+w]==old[sa[i-1]+w]) rk[sa[i]]=c;
else rk[sa[i]]=++c;
}
if(c==n) return;
solve(d+1,c);
}
void build(char *S){
memset(buc,0,sizeof(buc));
for(int i=1;i<=n;i++) buc[rk[i]=S[i]]++,h[0][i]=S[i],s[0].ins(i,S[i],i);
for(int i=1;i<=m;i++) buc[i]+=buc[i-1];
for(int i=n;i>=1;i--) sa[buc[rk[i]]--]=i;
solve(0,m);
}
seq mat(int l,int r,int x,int y,int k){//匹配
int b1=get(x,(1<<k)),b2=get(y,(1<<k));ull H=h[k][l];
return merge(s[k].fd(b1,H).seg(x,y),s[k].fd(b2,H).seg(x,y));
}
}D[2];
void query(int l,int r){//求最长 border、最短 border、border 个数
int mx=0,mn=0x3f3f3f3f,cnt=0;
for(int i=0;(1<<i)<r-l+1;i++){
int v=1<<i,v1=min(v*2,r-l+1)-1;
seq r1=D[0].mat(l,l+v-1,r-v1+1,r-v+1,i),r2=D[1].mat(n-r+1,n-(r-v+1)+1,n-(l+v1-1)+1,n-(l+v-1)+1,i);
if(r1.st) r1.st=r-r1.st+1,r1.ed=r-r1.ed+1,swap(r1.st,r1.ed);
if(r2.st) r2.st=n-l+1-r2.st+1,r2.ed=n-l+1-r2.ed+1,swap(r2.st,r2.ed);
seq R=cap(r1,r2);
int pos=R.ed;
if(pos) mx=max(mx,R.ed),mn=min(mn,R.st),cnt+=R.len();
}
if(cnt) printf("%d %d %d\n",mn,mx,cnt);
else printf("-1\n");
}
int main(){
int l,r;
scanf("%s%d",s+1,&q);
n=strlen(s+1);
pw[0]=1,W[0]=rd(),W[1]=rd();
for(int i=1;i<=n;i++) pw[i]=pw[i-1]*p%mod;
D[0].build(s),reverse(s+1,s+n+1),D[1].build(s);//正反串都建一遍
while(q--){
scanf("%d%d",&l,&r),l++,r++;
query(l,r);
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 129ms
memory: 313488kb
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: 210ms
memory: 379064kb
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: 140ms
memory: 390420kb
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: 200ms
memory: 383168kb
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: 372ms
memory: 401068kb
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: 619ms
memory: 324384kb
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: 1942ms
memory: 452868kb
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: 621ms
memory: 322212kb
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: 1156ms
memory: 431512kb
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: 1181ms
memory: 431204kb
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: 1106ms
memory: 426280kb
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: 968ms
memory: 418020kb
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: 1039ms
memory: 424720kb
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: 1045ms
memory: 420716kb
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: 1972ms
memory: 454108kb
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: 9ms
memory: 305496kb
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: 12ms
memory: 336436kb
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: 12ms
memory: 337488kb
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: 10ms
memory: 330580kb
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: 16ms
memory: 349800kb
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