QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#751195#9406. TriangleeastcloudAC ✓348ms191452kbC++176.2kb2024-11-15 17:28:132024-11-15 17:28:14

Judging History

你现在查看的是最新测评结果

  • [2024-11-15 17:28:14]
  • 评测
  • 测评结果:AC
  • 用时:348ms
  • 内存:191452kb
  • [2024-11-15 17:28:13]
  • 提交

answer


#include<bits/stdc++.h>

#define ll long long
#define pi pair<ll,ll>
#define vi vector<ll>
#define cpy(x,y,s) memcpy(x,y,sizeof(x[0])*(s))
#define mset(x,v,s) memset(x,v,sizeof(x[0])*(s))
#define all(x) begin(x),end(x)
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define ary array
#define eb emplace_back
#define IL inline

using namespace std;

#define N 2020005

ll read(){
    ll x=0,f=1;char ch=getchar();
    while(ch<'0' || ch>'9')f=(ch=='-'?-1:f),ch=getchar();
    while(ch>='0' && ch<='9')x=(x<<1)+(x<<3)+(ch^48),ch=getchar();
    return x*f;
}
void write(ll x){
    if(x<0)x=-x,putchar('-');
    if(x/10)write(x/10);
    putchar(x%10+'0');
}

char s[N],t[N];
ll buc[N],rk[N],ork[N],id[N],R[N];
ll ht[N],ed[N],sa[N],h[23][N];

void get_SA(ll n){
    ll m=(1<<7),p=0;
    mset(buc,0,max(m+1,n+1));
    for(ll i=1;i<=n;i++)buc[rk[i]=t[i]]++;
    for(ll i=1;i<=m;i++)buc[i]+=buc[i-1];
    for(ll i=n;i>=1;i--)sa[buc[rk[i]]--]=i;
    //for(ll i=1;i<=n;i++)cerr<<t[i];cerr<<endl;
    for(ll w=1;;w<<=1,m=p,p=0){
        for(ll i=n;i>n-w;i--)id[++p]=i;
        for(ll i=1;i<=n;i++)if(sa[i]-w>=1)id[++p]=sa[i]-w;
        mset(buc,0,m+1);
        for(ll i=1;i<=n;i++)buc[R[i]=rk[id[i]]]++;
        for(ll i=1;i<=m;i++)buc[i]+=buc[i-1];
        for(ll i=n;i>=1;i--)sa[buc[R[i]]--]=id[i];
        cpy(ork,rk,n+1);p=0;
        for(ll i=1;i<=n;i++){
            rk[sa[i]]=(ork[sa[i]]==ork[sa[i-1]] && ork[sa[i]+w]==ork[sa[i-1]+w]?p:++p);
        }
        if(p==n)break;
    }
    ll k=0;
    for(ll i=1;i<=n;i++){
        if(k)k--;
        while(t[i+k]==t[sa[rk[i]-1]+k])k++;
        ht[rk[i]]=k;h[0][rk[i]]=k;
    }
    for(ll i=1;i<=__lg(n);i++){
        for(ll j=1;j+(1<<i)-1<=n;j++)h[i][j]=min(h[i-1][j],h[i-1][j+(1<<(i-1))]);
    }
}
ll ask_min(ll l,ll r){
    if(l==r)return N;
    l++;ll d=__lg(r-l+1);return min(h[d][l],h[d][r-(1<<d)+1]);
}

ll cnt[N],nex[N][27],suf[N],tot=1;
ll insert(ll len){
    ll p=1;
    for(ll i=1;i<=len;i++){
        ll it=s[i]-'a'+1;
        if(!nex[p][it])nex[p][it]=++tot;
        p=nex[p][it];
    }
    cnt[p]++;
    if(cnt[p]>=2)return 0;
    return p;
}

struct BIT{
    ll K[N];
    ll lowbit(ll x){return x&(-x);}
    void add(ll x,ll val){while(x<N){K[x]+=val;x+=lowbit(x);}}
    ll ask(ll x){ll ans=0;while(x){ans+=K[x];x-=lowbit(x);}return ans;}
}T,G;

struct node{
    ll ti,l,r,coef;
    node(ll ti=0,ll l=0,ll r=0,ll coef=0):ti(ti),l(l),r(r),coef(coef){}
};
vector<node> P;
struct qry{
    ll t,p,coef;
    qry(ll t=0,ll p=0,ll coef=0):t(t),p(p),coef(coef){}
};
vector<qry> Q;

pi I[N];
ll sum[N],nexr[N],lth[N],now;

void solve(){
    ll m=0,idx=0;ll n=read();
    for(ll i=1;i<=n;i++){
        scanf("%s",s+1);ed[i]=m+1;ll len=strlen(s+1);
        ll pos=0;//if(n==100 && i>=45 && now==11)cout<<(s+1)<<endl;
        if(pos=insert(len)){
            for(ll j=1;j<=len;j++)t[++m]=s[j];
            t[++m]='@';suf[pos]=ed[i];lth[suf[pos]]=len;
            I[++idx]=mp(ed[i],len);
        }
    }
    t[++m]='$';get_SA(m);
    for(ll i=1;i<=tot;i++)if(cnt[i])sum[rk[suf[i]]]+=cnt[i],T.add(rk[suf[i]],cnt[i]),nexr[rk[suf[i]]]=suf[i];
    for(ll i=m;i>=1;i--)nexr[i]=(nexr[i]?nexr[i]:nexr[i+1]);
    for(ll i=1;i<=m;i++)sum[i]+=sum[i-1];
    ll res=0;
    for(ll i=1;i<=idx;i++){
        ll begin=I[i].fi,len=I[i].se,p=1;
        
        auto trs=[&](ll l,ll r){
            p=1;
            for(ll k=l;k<=r;k++){
                ll it=t[k]-'a'+1;
                p=nex[p][it];
            }
        };
        trs(begin,begin+len-1);//cerr<<begin<<' '<<len<<' '<<rk[suf[p]]<<endl;
        if(cnt[p]>=2){
            ll les=sum[rk[suf[p]]-1];
            res+=(cnt[p]*(cnt[p]-1))/2*les;
        }
        if(cnt[p]>=3)res+=(cnt[p]*(cnt[p]-1)*(cnt[p]-2))/6;
        
        ll coef=cnt[p];p=1;
        ll subtot=0;
        for(ll k=begin;k<=begin+len-1;k++){
            ll it=t[k]-'a'+1;p=nex[p][it];
            if(k==begin+len-1)break;
            if(!cnt[p])continue;
            ll Bst=k+1;ll L=rk[Bst],R=rk[begin]-1;
            if(nexr[L] && lth[nexr[L]]==begin+len-1-k && ask_min(L,rk[nexr[L]])>=lth[nexr[L]]){
                L=rk[nexr[L]]+1;
            }
            else L++;
            if(L>R)continue;
            ll num=(T.ask(R)-T.ask(L-1));
            
            if(rk[suf[p]]>=L && rk[suf[p]]<=R)res+=coef*(cnt[p]*(cnt[p]-1))/2,num-=cnt[p],subtot+=cnt[p]*cnt[p];
            //cerr<<begin<<' '<<len<<' '<<k<<' '<<L<<' '<<R<<' '<<rk[suf[p]]<<' '<<num<<' '<<sum[rk[begin]-1]<<endl;
            //cerr<<nexr[L]<<' '<<rk[nexr[L]]<<' '<<lth[nexr[L]]<<' '<<begin+len-1-k+1<<endl;
            res+=cnt[p]*coef*num;

            Q.eb(qry(R,rk[suf[p]],1*cnt[p]));Q.eb(qry(L-1,rk[suf[p]],-1*cnt[p]));
            P.eb(node(rk[suf[p]],L,R,cnt[p]));

            G.add(L,cnt[p]);
        }

        //cerr<<res<<endl;

        sort(Q.begin(),Q.end(),[](qry A,qry B){return A.t<B.t;});
        sort(P.begin(),P.end(),[](node A,node B){return A.ti<B.ti;});
        ll pos=-1;
        for(auto [t,l,r,co]:P){
            while(pos+1<Q.size() && Q[pos+1].t<t)pos++,subtot-=Q[pos].coef*G.ask(Q[pos].p);
            G.add(l,co);G.add(r+1,-co);
        }
        while(pos+1<Q.size())pos++,subtot-=Q[pos].coef*G.ask(Q[pos].p);
        for(auto [t,l,r,co]:P)G.add(l,-co),G.add(r+1,co);
        res+=subtot/2*coef;P.clear();Q.clear();
        //cerr<<res<<endl;
    }
    for(ll i=1;i<=tot;i++)if(cnt[i])T.add(rk[suf[i]],-cnt[i]);
    for(ll i=1;i<=tot;i++){
        for(ll j=1;j<=26;j++)nex[i][j]=0;
        cnt[i]=suf[i]=0;
    }
    mset(sum,0,m+1);mset(sa,0,m+1);mset(rk,0,m+1);mset(nexr,0,m+1);
    write(res);putchar('\n');
    tot=1;
}

//把所有字符串插到 trie 里,相同的只在后缀数组里保留一个
//遍历每个字符串,算以他为最长边的时候的方案
//遍历每个前缀,先统一加到树状数组里,在 SA 里找比自己小,比主串小,比后缀大的合法的区间,计数
//自己重复两遍如果没加要加上

int main(){
    #ifdef EAST_CLOUD
    freopen("a.in","r",stdin);
    //freopen("a.out","w",stdout);
    #endif

    ll T=read();now=T;while(T--)solve(),now--;
    return 0;
}

这程序好像有点Bug,我给组数据试试?

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

3
6
cbaa
cb
cb
cbaa
ba
ba
3
sdcpc
sd
cpc
1
ccpc

output:

16
0
0

result:

ok 3 lines

Test #2:

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

input:

14
1
lfpbavjsm
2
pdtlkfwn
mbd
3
dvqksg
dvqksg
uhbhpyhj
4
ombwb
ombwb
ombwb
ombwb
5
oztclz
oztclz
oztclz
oztclz
kul
6
vco
vco
vco
dtktsqtinm
vco
vco
7
tb
tb
kowbsu
ygkfphcij
tb
uvei
tb
8
vxxtxssht
abnsxbf
bydaae
bydaae
udalyvmcef
bydaae
bydaae
bydaae
9
aaze
zvyonw
qjfv
mmhkef
qjfv
qjfv
qjfv
mmhkef
qj...

output:

0
0
0
4
10
20
10
20
41
14
63
74
18
11081

result:

ok 14 lines

Test #3:

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

input:

11
10
bppzfsncq
bppzfsncq
vcqxgcehdx
bppzfsncq
bppzfsncq
muwrcvt
w
aanwhqmync
aanwhqmync
bppzfsncq
10
t
jkky
t
z
t
t
z
z
z
t
10
qidkyca
uhqubvbo
kosyvh
gsj
gsj
gsj
duo
jrro
gsj
jrro
10
lhktb
lhktb
lhktb
uohl
lhktb
r
lhktb
lhktb
wruim
lhktb
10
e
gqvdmpvxb
gqvdmpvxb
gqvdmpvxb
sttirbhz
gqvdmpvxb
zdfpm
...

output:

30
60
15
35
20
20
23
12
38
44
8047

result:

ok 11 lines

Test #4:

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

input:

11
100
kalgqjh
mdszzwe
qxn
kalgqjh
hy
kalgqjh
suplvp
r
kkeoxmx
tcoise
suplvp
suplvp
y
kalgqjh
vrwniyici
jmnyrradyq
kalgqjh
kalgqjh
suplvp
rkg
xzevyk
zc
suplvp
hcupv
kalgqjh
qakyahjaoi
mum
pbg
u
ip
kalgqjh
kalgqjh
jngc
ylr
suplvp
qxn
kalgqjh
bzwodm
e
kalgqjh
kalgqjh
evmm
kbymvbccs
kalgqjh
suplvp
kalg...

output:

12478
6722
9220
6668
4934
11233
7950
5470
4525
5743
1586066

result:

ok 11 lines

Test #5:

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

input:

2
1000
t
lhijhkxzzx
nhfiksblww
h
xg
z
dcbmbvyz
ois
ynwjgfp
oqzv
qtoinl
gr
teu
kmza
hs
t
mwhewk
kjmuneon
bekku
qheweh
szhagft
fcwjp
bobwnap
y
oqpole
oqzv
xeaiyhfeg
rjkdidea
wmeslege
vyyi
teomn
yvmcnw
vnvum
tgnl
swqqruuvc
xxllevp
bov
dse
e
b
rtbhogkx
nzs
e
bs
pppyndgrrv
n
tzbwqdusn
e
xeaiyhfeg
i
agnet...

output:

2430570
1904282

result:

ok 2 lines

Test #6:

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

input:

503
16
yh
yh
yhc
yhc
yhcowdfqlwfidnx
yhc
yhc
yh
yhcowdfqlwfidn
yhcowdfqlwfidnx
yh
h
yh
yhcowdfqlwfidnx
yhcowdfqlwfidnx
yhc
19
nb
nbg
vpfkllgv
nmzqfsuafqtayjjjcidpygz
nb
nb
gutq
n
omyuvm
fgxtfbhuglxyiumi
nbghjuti
nbg
nb
fgxt
nbghjuti
n
nb
nbg
n
7
rtjiwfidoahckhvgoxvvrncqvgerqiuaruiftakvugsgnsw
wllcan...

output:

531
485
6
12
4
118
6
3
1635
18
373
20
954
6208
45
12
1124
79
267
2
5778
22
13
1
1
16
630
0
7
16315
0
2155
2308
26
936
109
103
5
0
2492
7
2
114
144
11
158
0
0
101
455
0
12234
78
631
5402
94
66
84
161
4412
5
3
81
22
20
13
52
632
6
137
56
2
3
64521
122
330
0
0
7
0
113
249
8
301
335
1825
110
4
108
50
10...

result:

ok 503 lines

Test #7:

score: 0
Accepted
time: 22ms
memory: 77700kb

input:

503
23
rjyyivdg
n
n
n
n
n
n
n
nmr
n
nmrk
nm
rjyyivdguyiffnvunoxconw
n
n
n
o
lixclcmwthwkrsi
mqluhyypgfkmdvgpzju
n
nmrk
rjy
n
15
jotwxwhaqdxmazhslyouztprzlirisvwvduojb
jot
jotwxw
j
jotwx
jotwx
gohg
j
gdgneodagmdhvvapjh
jotwxw
xs
vurk
vurk
j
xs
7
xrczucnkbemaymvabkkwnn
xrczucnkbemaymvabkkwnn
xrczucnkb...

output:

855
58
35
0
1
56
2
112
1
8465
242
56
110
23
544
0
3
17
29
11
764
20
9
0
4
77
812
35
4
10
32
437
9
2364
3
2
11
2
421
50
4
107
1
62
1120
3
1
16
3970
1147
1026
8
4
85
9
31
61
16
205
2
2
84
238
1
1
51
4
0
16
61
331
4
16
7
0
7
148
10
13
2
1
37
1
67
0
296
1
0
644
32
2
10
0
5
126
3490
4
0
10
331
1216
7921
...

result:

ok 503 lines

Test #8:

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

input:

503
5
ljtolmgjndlwoyjjttak
mihjdhkyfnafwrpeuiuiurusvsnu
ljtolmgjndlwoyjjttak
mihjd
ljtolmgjndlwoyjjttak
25
lhx
lh
lhx
lh
k
lh
kninp
l
lhx
lhx
izeqohkpfuovopebttqaufmmlivd
lhx
lhx
qid
lhx
lh
lhx
lhx
oklb
l
lhx
lhx
lhx
lhx
l
9
mxeonfwpujrilfigjoiyjkzdmi
fezhyrcyqy
mx
fezh
f
dmvfbklnkxmnetib
dmvfbkln
m...

output:

4
1476
27
26
117970
2
105
30
4
737
4
2
19
48
34
434
6
78331
22
23
0
228
56
4
3
305
9
84
132
199
20
3
4057
0
0
20
35
34
48
4
266
14
17
4788
545
28989
0
10
535
84
1
1775
322
11
57
16
15
1331
5
0
10
5
183
8
2
237
10
0
60
20
42
7
10
297
14
210
6254
7
3
0
13
2744
119
47
0
1
68114
17
1
2
1
7
1
2
113
26
0
...

result:

ok 503 lines

Test #9:

score: 0
Accepted
time: 23ms
memory: 91984kb

input:

503
11
wkeoqqqpvmgdv
w
w
w
wkeoqqqpvmgdv
sgrwmsfwclpamgq
wkeoqqqpvm
qkmbyvcxjsh
wkeoqqqpvm
wke
wkeoqqqpvmgdv
7
otd
qelodfwrqeprgyvzbcjljx
qe
qelodfwrqeprgyvzbcjlj
qelodfwrqeprgyvzbcjlj
qelodfwrqeprgyvzbcjlj
c
15
rce
rce
fwq
fwqqfcjrhqot
rceft
jkdrcehfwhqkupe
fwq
r
jkdr
fwq
rceft
rce
fwqqfcjrhqot
fwq...

output:

156
17
213
12
20
1
374
4
0
26
26
3
122
30
4005
24
1385
50
84
44
0
112
42
36
19
887
99
5
9
13
2
5029
52
14
84
116
2
10
4
8
141
9287
822
37
5
13
25
1030
0
2
3
35
81
1
0
1
138
0
578
7
30
636
63
22
2118
863
5377
33
34
10
156
336
1
7
7
4
1793
2
124
13
4
2015
7
23
1
4516
3
17
6
35
13336
9
61
3093
0
1
7
22...

result:

ok 503 lines

Test #10:

score: 0
Accepted
time: 229ms
memory: 182264kb

input:

1003
3
mpfowyd
mpfowydrivrkjiarwcxwbfqvnktlzcfolbbsgelvcnzeqy
hytzojmfeiwtpquxhneeznbdjjlsptedaorwfsxi
3
nyfcq
nyfcqgrmshiwmgcbukozvetdggebkkychamof
nyfcqgrmshiwmgcbukozvetdggebkkychamofadozdympuejvhdnpi
8
yoeqyfcjsywowdrlzzybjvtycqvizzomc
zci
yoeqyfc
zcinc
yoeqyfcjsywowdrlzzybjvtycqvizzomc
y
zcinc
...

output:

0
1
26
10
66
403
1
265
1025
16
329
4
1219
1
10
70
30
182
60
5
71
1
20
5343
22328
40667
90
6983
66
10
35
20
250
307
913
98
44
5393
56
280
270
3
3
2229
77
17
774
50
5
21
0
208
8
14
185
35
20
11
465
132
176
10
0
10
1704
13
44
141
0
0
5
10
79
17
213
10
108
0
0
289
10
255
27
493
4
1
24
379
30
9
284
173
2...

result:

ok 1003 lines

Test #11:

score: 0
Accepted
time: 194ms
memory: 185196kb

input:

1003
6
exssl
exsslhsuwyemcafatpinzvdeypwjqsnvxlkvmpywgx
f
exss
exs
exsslhsuwyemcafatpinzvdeypwjqsnvxlkvmpywgx
7
hzzev
hzzevmltbehnvjfhsz
hzzevmltbe
hzzevmltbehnvjfhszqzobn
hzzevmltbehnvjf
hm
hzzevmltbehnvjfhszqzobn
9
rdx
rdxnxdfcyrdpgwzwtqgtu
rdx
rdxnxdfcyrdpgwzwtqgtu
f
kpotnxntufvd
kpotnxntufvdlmij...

output:

3
19
41
134
107
2
372
0
466
456
20
13
25
339
64
170
1
5
27295
3
1
221
116
11
29
19
1006
16827
16
19863
4
6
5784
3
20
21130
66
1275
100
731
83
3
84
0
32
3
615
207
8
44
245
48
165
18050
128
11
864
21
3
1221
120
51
21
8
247
302
0
1098
0
57
42
20
0
845
1
84
16
4
0
2
836
482
4
12
150
654
1035
142
291
34
...

result:

ok 1003 lines

Test #12:

score: 0
Accepted
time: 197ms
memory: 187856kb

input:

1003
10
lgbpleleme
u
u
uxpwzhga
uxpwzhg
u
uxpwzhgaadltqqpqkbteylath
u
uxpwzhgaadltqqpqkbteylath
uxpwzhgaadltqqpq
9
aqoxfsmqwpafbocodlpdykesadqgiggw
swzjus
oim
aqoxfsmq
aqoxfsmqwpafboc
swzju
nohnsjbdhljarh
swzjusx
aqoxf
20
mbdiqaartewavbbwbhftzwxm
k
mbdiqaartewavbbwbhftzwxm
kx
kxs
kxsqv
kx
kx
kxsqv
k...

output:

70
0
290
10
604
1770
2
913
1
165
16
316
4
169
26
3
36
2
1549
2
13
15
21
14
109
34
16
1889
132
1700
1
96
17
436
2
0
6183
4144
0
4
50
4
10
5
4
4
78
10
16
97
16
50204
15871
350
3
865
46
7
0
73
38
46
29
1946
65
22088
7
91
43
310
1806
0
50
4
17
38725
262
50
0
304
141
35
50
0
22760
2973
14
410
1112
20
703...

result:

ok 1003 lines

Test #13:

score: 0
Accepted
time: 188ms
memory: 185688kb

input:

1003
7
amhy
ncfsepqjimkaxkvlsqw
bgk
ncfsepqjim
n
amhyderccfrcdclbgrhxospemrlwctcnogb
ncfsepqjimkaxkvlsqwzxubaz
15
ul
k
cqm
kuixi
ovrwzbvkvkzfuqtxooevyvuayhupn
o
kuixi
ulihj
k
k
kzlmrtwddplvqvakmeda
ku
k
kzlmrtwddplvqvakmeda
k
15
mf
dwhth
cwkbrvykvcvqltdovbcy
dwhth
dwht
dwhth
cwkbrvykvcvqltdovbcy
dwh...

output:

4
58
203
10
8614
17
20
0
0
4
43987
18
164
144
35
412
3
19
20
51
50
0
4
16
37
1
4
14
8
526
197
71
20
26
20
35
55
16
0
3667
274
2024
4
33
19492
435
1
2
10
10
22631
32
690
1
0
13
166
561
6
67
10
33
286
4
1
89
11
18
12266
26
23
280
286
16
400
102
0
10
46
40
1
84
27
14
5699
105
197
39
818
36
6
29491
4
17...

result:

ok 1003 lines

Test #14:

score: 0
Accepted
time: 186ms
memory: 191452kb

input:

1003
36
dv
d
dvgsku
dv
d
d
dv
dv
d
d
dv
dvg
dvgs
dvgsku
dv
d
d
dv
d
d
nwitakortf
dv
dv
dvg
d
dvg
dv
d
tksvgjqlfzdolvno
d
d
dvg
dv
dv
dvgsku
dv
6
w
oursusfeydeqnv
wdrteonpibjzxvhzvqbytajwkgqwmucrzemrfowydhkkd
wdrteonpibjzxvhzvqb
wdrteo
wdrteo
11
crmoyb
c
crmo
wkyxgzsh
cr
flnsuvxkaqknoofhjdackgvavroh
...

output:

1840
19
9
370
7
31
892
504
6
56
150
209
41
0
255
221
1
7670
0
14
638
3
100
1365
17
3
20
16
74
20
15
496
3270
16
0
62
2
345
1
65
2277
0
1
39
0
0
1
2381
707
152
8485
289
109
2066
2803
38
197
1
46
38
44
323
14
1
10
98
2
116
38
82
0
56
2220
4
10
1879
29
241
65
17
7
10
6
8
162
20
9
2
10
4
4
0
4
76
50
194...

result:

ok 1003 lines

Test #15:

score: 0
Accepted
time: 190ms
memory: 186820kb

input:

1003
2
serwtujvdfqkirmfdetefaevwuuwqlkcmierfpxwzimcpmvdqvuwxwqtuq
serwtujvdfqkirmfdetefaevwuuwqlkc
6
cnbkhujgexqrjtbcqwncpeiyj
cnbkhujgexqrj
cnbkhujgexqrj
gisjwbxjohpnbvmtwvhhvb
c
cnbkhujgexqrjtbcqwncpeiyj
21
k
k
k
kpqon
k
aesamtzjajczokh
kpqonwvoiy
kpqonwv
kpqonwv
sbl
kpqonwvoiy
k
tdyvo
tdyvo
kpqon...

output:

0
4
199
4
199
16
650
1
506
9
0
12
81
4
1587
10
22
0
12383
436
29
152
61990
3
40
4
10
26
1
17
4
102
22
41
32
244
3
6486
1470
2
1425
22
5
2
321
5
70724
1023
7
41
15
7
10
5
11
0
186
34
7
7
4
5
0
1184
23
115
10
124
48
0
19104
969
1179
9
7
1
23042
809
100
86
18
4
1
27
77
84
0
30
1
0
6023
418
10
1
15
52
0...

result:

ok 1003 lines

Test #16:

score: 0
Accepted
time: 171ms
memory: 168796kb

input:

4
10000
aacbfedgih
aachgdeibf
aacbfedhgi
aabciedghf
aacbgeihfd
aacdgbhefi
aacgfeihdb
aabgfehidc
aabfgehdci
aabhdceigf
aacdebihfg
aabdgeihcf
aabgdcihfe
aaceibdgfh
aacdgehbif
aabfdicehg
aabhdfegic
aacfibgdeh
aacdfghieb
aabgdifhec
aabgdfhice
aachedbgif
aabdecgihf
aabdchefig
aacfgbeihd
aabdgfihce
aabehd...

output:

0
0
0
0

result:

ok 4 lines

Test #17:

score: 0
Accepted
time: 348ms
memory: 186392kb

input:

4
317
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

output:

2600268
13538368
13577242
13530312

result:

ok 4 lines

Extra Test:

score: 0
Extra Test Passed