結果
問題 |
No.2172 SEARCH in the Text Editor
|
ユーザー |
![]() |
提出日時 | 2022-12-24 03:51:00 |
言語 | cLay (20241019-1) |
結果 |
AC
|
実行時間 | 29 ms / 2,000 ms |
コード長 | 875 bytes |
コンパイル時間 | 4,398 ms |
コンパイル使用メモリ | 174,808 KB |
実行使用メモリ | 16,084 KB |
最終ジャッジ日時 | 2024-11-18 07:15:27 |
合計ジャッジ時間 | 6,532 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 49 |
ソースコード
#define MD 998244353 struct S{ Mint k; int n; char a[50],b[50]; }; S q[100000]; { ll@n; ll tn; char t[51]; rd(t@tn); rep(i,n){ ll sn; char s[100001]; rd(s@sn); if(*s=='~'){ ll@--j,@--k; { ll l=max(0,min(tn-1-q[j].n,q[k].n)); memcpy(q[i].a,q[j].a,q[j].n); memcpy(q[i].a+q[j].n,q[k].a,l); } { ll l=max(0,min(tn-1-q[k].n,q[j].n)); memcpy(q[i].b,q[j].b+q[j].n-l,l); memcpy(q[i].b+l,q[k].b,q[k].n); } q[i].n=min(tn-1,q[j].n+q[k].n); memcpy(s,q[j].b,q[j].n); memcpy(s+q[j].n,q[k].a,q[k].n); sn=q[j].n+q[k].n; q[i].k=q[j].k+q[k].k; }else{ if(sn<tn){ memcpy(q[i].a,s,sn); memcpy(q[i].b,s,sn); q[i].n=sn; }else{ memcpy(q[i].a,s,tn-1); memcpy(q[i].b,s+sn-(tn-1),tn-1); q[i].n=tn-1; } } rep(d,sn-(tn-1)){ if(memcmp(s+d,t,tn)==0){ q[i].k+=1; } } } wt(q[n-1].k); }