QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#602408 | #9406. Triangle | grass8cow | AC ✓ | 409ms | 134380kb | C++17 | 5.6kb | 2024-10-01 00:37:12 | 2024-10-01 00:37:12 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10;
char c[N];
namespace GG{
int sa[N],tr[N<<2],rk[N<<2],t[N],h[N],st[N][20],lg[N],n_;
int lcp(int x,int y){
if(x==y)return n_-x+1;
x=rk[x],y=rk[y];if(x>y)swap(x,y);x++;int k=lg[y-x+1];
return min(st[x][k],st[y-(1<<k)+1][k]);
}
void SA(int n){
for(int i=1;i<=n*4;i++)tr[i]=rk[i]=0;
for(int i=1;i<=n;i++)sa[i]=t[i]=h[i]=st[i][0]=0;
for(int i=1;i<=128;i++)t[i]=0;
n_=n;
lg[0]=-1;
for(int i=1;i<=n;i++)lg[i]=lg[i>>1]+1;
int m=128;
for(int i=1;i<=n;i++)t[rk[i]=c[i]]++;
for(int i=1;i<=m;i++)t[i]+=t[i-1];
for(int i=n;i;i--)sa[t[rk[i]]--]=i;
for(int k=1;;k<<=1){
int o=0;
for(int i=n-k+1;i<=n;i++)tr[++o]=i;
for(int i=1;i<=n;i++)if(sa[i]>k)tr[++o]=sa[i]-k;
for(int i=1;i<=m;i++)t[i]=0;
for(int i=1;i<=n;i++)t[rk[i]]++;
for(int i=1;i<=m;i++)t[i]+=t[i-1];
for(int i=n;i;i--)sa[t[rk[tr[i]]]--]=tr[i];
for(int i=1;i<=n*2;i++)swap(tr[i],rk[i]);
rk[sa[1]]=o=1;
for(int i=2;i<=n;i++)
rk[sa[i]]=(tr[sa[i-1]]==tr[sa[i]]&&tr[sa[i-1]+k]==tr[sa[i]+k])?o:(++o);
if(o==n)break;m=o;
}
for(int i=1,k=0;i<=n;i++){
if(k)k--;
int j=sa[rk[i]-1];
while(i+k<=n&&j+k<=n&&c[i+k]==c[j+k])k++;
h[rk[i]]=st[rk[i]][0]=k;
}
for(int j=1;j<20;j++)for(int i=1;i+(1<<j)-1<=n;i++)
st[i][j]=min(st[i][j-1],st[i+(1<<(j-1))][j-1]);
}
}
#define pi pair<int,int>
int R[N],e,ch[N][26],cn,tp[N],ry[N],f[N];
int no[N],nc,rk[N],no2[N],rk2[N];
int sgn(int l1,int r1,int l2,int r2){
r1=r1-l1+1,r2=r2-l2+1;int xp=1;
if(r1>r2)xp=-1,swap(r1,r2),swap(l1,l2);
int lc=GG::lcp(l1,l2);
if(lc<r1)return (c[l1+lc]<c[l2+lc])?xp:-xp;
if(r1!=r2){
lc=GG::lcp(l2,l2+r1);
if(lc<r2-r1)return (c[l2+lc]<c[l2+r1+lc])?xp:-xp;
}
lc=GG::lcp(l2+(r2-r1),l1);
if(lc<r1)return (c[l2+(r2-r1)+lc]<c[l1+lc])?xp:-xp;
return 0;
}
#define ll long long
ll C3(ll x){return x*(x-1)*(x-2)/6;}
ll C2(ll x){return x*(x-1)/2;}
void dfs(int x){
if(ry[x])no2[++nc]=x,rk2[x]=nc;
for(int i=0;i<26;i++)if(ch[x][i])
dfs(ch[x][i]);
}
bool chk2(int cl,int cr,int bl,int br){
cr=cr-cl+1,br=br-bl+1;
int lc=GG::lcp(cl,bl);
if(lc<min(cr,br))return c[cl+lc]<c[bl+lc];
return cr<br;
}
int gt(int pl,int pr){
int l=1,r=nc,kr=r+1;
while(l<=r){
int mid=(l+r)>>1,u=ry[no2[mid]];
if(chk2(pl,pr,R[u-1]+1,R[u]))
kr=mid,r=mid-1;
else l=mid+1;
}
return kr;
}
bool chk(int cl,int cr,int al,int ar,int bl,int br){
cr=cr-cl+1,ar=ar-al+1,br=br-bl+1;
int lc=GG::lcp(cl,al);
if(cr>ar){
if(lc<ar)return c[cl+lc]<c[al+lc];
cl+=ar,cr-=ar;
}
else{
if(lc<cr)return c[cl+lc]<c[al+lc];
return 1;
}
lc=GG::lcp(cl,bl);
if(lc<min(cr,br))return c[cl+lc]<c[bl+lc];
return cr<br;
}
int gt2(int u,int v){
int al=R[u-1]+1,ar=R[u],bl=R[v-1]+1,br=R[v];
int l=1,r=nc,kl=0;
while(l<=r){
int mid=(l+r)>>1,z=ry[no2[mid]],cl=R[z-1]+1,cr=R[z];
if(chk(cl,cr,al,ar,bl,br))kl=mid,l=mid+1;
else r=mid-1;
}
return kl;
}
struct BIT{
ll tr[301000];
inline void cl(){
for(int i=1;i<=nc;i++)tr[i]=0;
}
inline void ad(int x,ll z){
for(;x<=nc;x+=(x&-x))tr[x]+=z;
}
inline ll ask(int x){
ll s=0;
for(;x;x-=(x&-x))s+=tr[x];
return s;
}
}T;
#define pb push_back
vector<pair<ll,pair<int,int> > >G[N];
void Sol(){
scanf("%d",&e);
cn=1,nc=0;
for(int i=1;i<=e;i++){
scanf("%s",c+R[i-1]+1);
R[i]=strlen(c+R[i-1]+1);
R[i]+=R[i-1];
int u=1;
for(int j=R[i-1]+1;j<=R[i];j++){
int p=c[j]-'a';
if(!ch[u][p])ch[u][p]=++cn,f[cn]=u;
u=ch[u][p];
}
tp[u]++,ry[u]=i;
}
dfs(1);
GG::SA(R[e]);
for(int i=1;i<=nc;i++)no[i]=no2[i];
sort(no+1,no+nc+1,[&](int x,int y){
int a=ry[x],b=ry[y];
int ct=sgn(R[a-1]+1,R[a],R[b-1]+1,R[b]);
if(ct!=0)return ct>0;
return x<y;
});
for(int i=1;i<=nc;i++)rk[no[i]]=i;
ll ans=0;
for(int i=1;i<=nc;i++){
int u=no[i],v=u,cl=R[ry[u]-1]+1,cr=R[ry[u]];
ans+=C3(tp[u]);
while(v){
if(!ry[v]){v=f[v];continue;}
int lv=R[ry[v]]-R[ry[v]-1],zl=1;
if(u!=v)zl=gt(cl+lv,cr);
int r=min(rk[u],rk[v]);
if(u!=v&&zl<=((rk[u]<rk[v])?rk2[u]:rk2[v])){
if(rk[u]<rk[v])ans+=C2(tp[u])*tp[v];
else ans+=C2(tp[v])*tp[u];
}
if(r>1){
r--;
ll kz=((u==v)?C2(tp[u]):(1ll*tp[u]*tp[v]));
int zr=gt2(((rk[u]<rk[v])?ry[v]:ry[u]),((rk[u]<rk[v])?ry[u]:ry[v]));
if(zl<=zr)
G[r].pb({kz,{zl,zr}});
/*for(int j=1;j<=r;j++)
if(rk2[no[j]]<=zr&&rk2[no[j]]>=zl)ans+=kz*tp[no[j]];*/
}
v=f[v];
}
}
for(int i=1;i<=nc;i++){
T.ad(rk2[no[i]],tp[no[i]]);
for(auto it:G[i])ans+=(T.ask(it.second.second)-T.ask(it.second.first-1))*it.first;
}
printf("%lld\n",ans);
T.cl();
for(int o=0;o<=cn+3;o++){
c[o]=c[0],R[o]=0;
R[o]=tp[o]=ry[o]=f[o]=no[o]=rk[o]=no2[o]=rk2[o]=0,G[o].clear();
for(int i=0;i<26;i++)ch[o][i]=0;
}
}
int main(){
int Ca;scanf("%d",&Ca);while(Ca--)Sol();
return 0;
}
这程序好像有点Bug,我给组数据试试?
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 61604kb
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: 5ms
memory: 61188kb
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: 7ms
memory: 62320kb
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: 4ms
memory: 62932kb
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: 4ms
memory: 61452kb
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: 41ms
memory: 68840kb
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: 39ms
memory: 71080kb
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: 47ms
memory: 75076kb
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: 44ms
memory: 79128kb
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: 307ms
memory: 132180kb
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: 386ms
memory: 132340kb
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: 355ms
memory: 125948kb
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: 335ms
memory: 134380kb
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: 337ms
memory: 129900kb
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: 311ms
memory: 117056kb
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: 219ms
memory: 107564kb
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: 409ms
memory: 121000kb
input:
4 317 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
output:
2600268 13538368 13577242 13530312
result:
ok 4 lines
Extra Test:
score: 0
Extra Test Passed