QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#575438 | #3199. Passwords | ChenJiarun12345 | AC ✓ | 18ms | 5068kb | C++14 | 2.2kb | 2024-09-19 14:20:55 | 2024-09-19 14:20:57 |
Judging History
answer
/*
*/
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define inf 0x3f3f3f3f3f3f3f3f
#define For(i,l,r) for(register int i=(l);i<=(r);i++)
#define Rof(i,l,r) for(register int i=(l);i>=(r);i--)
#define bug cout<<"Ln:"<<__LINE__<<'\n'
bool MS;
struct ACAM{
int cnt,tr[1005][26];bool ed[1005];
void insert(char str[]){
int len=strlen(str+1),p=0;
For(i,1,len){
int t=str[i]-'a';
if(!tr[p][t]) tr[p][t]=++cnt;
p=tr[p][t];
}
ed[p]=1;
}
int fail[1005];
queue<int>q;
void build(){
fail[0]=0;
For(i,0,25) if(tr[0][i]) fail[tr[0][i]]=0,q.push(tr[0][i]);
while(!q.empty()){
int u=q.front();q.pop();
ed[u]|=ed[fail[u]];
For(i,0,25){
if(tr[u][i]) fail[tr[u][i]]=tr[fail[u]][i],q.push(tr[u][i]);
else tr[u][i]=tr[fail[u]][i];
}
}
}
}acam;
const int mod=1000003;
int nl,nr,m,f[25][1005][2][2][2];
char s[25];
void upd(int &x,int y){
x=(x+y)%mod;
}
bool MT;
signed main(){
// freopen(".in","r",stdin);
// freopen(".out","w",stdout);
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
// cerr<<"Memory: "<<1.0*(&MS-&MT)/1048576<<"MiB\n";
cin>>nl>>nr;
cin>>m;
For(i,1,m){
cin>>(s+1);
acam.insert(s);
}
acam.build();
assert(acam.cnt<1005);
f[0][0][0][0][0]=1;
For(i,0,nr-1){
For(j,0,acam.cnt) if(!acam.ed[j]){
For(a,0,1){
For(b,0,1){
For(c,0,1){
For(k,0,25){
upd(f[i+1][acam.tr[j][k]][1][b][c],f[i][j][a][b][c]);
upd(f[i+1][acam.tr[j][k]][a][1][c],f[i][j][a][b][c]);
}
For(k,0,9){
if(k==0) upd(f[i+1][acam.tr[j]['o'-'a']][a][b][1],f[i][j][a][b][c]);
else if(k==1) upd(f[i+1][acam.tr[j]['i'-'a']][a][b][1],f[i][j][a][b][c]);
else if(k==3) upd(f[i+1][acam.tr[j]['e'-'a']][a][b][1],f[i][j][a][b][c]);
else if(k==5) upd(f[i+1][acam.tr[j]['s'-'a']][a][b][1],f[i][j][a][b][c]);
else if(k==7) upd(f[i+1][acam.tr[j]['t'-'a']][a][b][1],f[i][j][a][b][c]);
else upd(f[i+1][0][a][b][1],f[i][j][a][b][c]);
}
}
}
}
}
}
int ans=0;
For(i,nl,nr){
For(j,0,acam.cnt) if(!acam.ed[j]){
upd(ans,f[i][j][1][1][1]);
}
}
cout<<ans<<'\n';
return 0;
}
/*
3 5
9
swerc
icpc
fbi
cia
bio
z
hi
no
yes
*/
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 3696kb
input:
3 5 9 swerc icpc fbi cia bio z hi no yes
output:
607886
result:
ok single line: '607886'
Test #2:
score: 0
Accepted
time: 0ms
memory: 3612kb
input:
4 5 0
output:
887311
result:
ok single line: '887311'
Test #3:
score: 0
Accepted
time: 0ms
memory: 3616kb
input:
3 5 1 a
output:
223848
result:
ok single line: '223848'
Test #4:
score: 0
Accepted
time: 0ms
memory: 3692kb
input:
4 5 10 a c e g i k m o q s
output:
178702
result:
ok single line: '178702'
Test #5:
score: 0
Accepted
time: 0ms
memory: 3684kb
input:
3 4 26 a b c d e f g h i j k l m n o p q r s t u v w x y z
output:
0
result:
ok single line: '0'
Test #6:
score: 0
Accepted
time: 1ms
memory: 3704kb
input:
3 5 8 fcup porto swerc ola hello no yes abc
output:
839906
result:
ok single line: '839906'
Test #7:
score: 0
Accepted
time: 1ms
memory: 3640kb
input:
3 5 10 attc tcag gtc gta aaaa ccaaa ttcg gacga aagcg cagd
output:
796623
result:
ok single line: '796623'
Test #8:
score: 0
Accepted
time: 0ms
memory: 3904kb
input:
3 5 12 a baz cbaz dcbaz hendb endb ndb b nn onno ayesb yes
output:
511313
result:
ok single line: '511313'
Test #9:
score: 0
Accepted
time: 0ms
memory: 3932kb
input:
4 6 50 hph h pp hhphpp p ph hh hhpp hpphhp hhp ppphp pph pppp hphph phhphh hpph hphphp phphp phphh hhh pphp phhh pphh ppphh phphpp phh hpphhh hhhh pphph phpp phph hhhhph hpphh hp hpp pphpp hhhp phhp hhph ppph hppph phhhh ppppp hppp hhphph hphphh ppp hhhpph hpppp hppphp
output:
344974
result:
ok single line: '344974'
Test #10:
score: 0
Accepted
time: 0ms
memory: 3756kb
input:
3 6 50 wqog sjqr fcbqax y xpwwi j gklgnc bmhark qgaj uvfpwz hi nallwx obms oigkq uehl r fq uqe rbhbt luzt jxyu fgvrk s gidv jlagzj cyshm ixjxu vkhjh ibbw k zq b knav ayxeqm rncdp kzqdww cdkkw fjl hy l qsakh bgju yzx sf emuc lq wcaba wla yal e
output:
188830
result:
ok single line: '188830'
Test #11:
score: 0
Accepted
time: 1ms
memory: 3724kb
input:
3 10 25 axaxxx txrj tt tttaxjr xxxrtj xttarxxxtx xaxjr r jrrjrxjr aarajar txt x rt xatxt xttj xjja xra jxt ra taaxra aj rjr xxaxaaj xxttrjxa xxtajx
output:
687381
result:
ok single line: '687381'
Test #12:
score: 0
Accepted
time: 4ms
memory: 3968kb
input:
3 15 35 vxkqvdexdx zxvee mvozimqezvxqoe qev vxiovmmdxq xozzzm iqexzoxqievxze deezqqdkek zvzodz veizidqkemvziox zmzidxidezve koxdvdm ozzmii xvedxqmm dqziexoe qdmo dokieiodoqzdzix dke odqo imeemxvexxzov veeixmvdq vdveoqv ixmezo dqoeexizokemovo dddzeokm ozizmq izieei kexzkqmxoqkeo dkoez voqmoidimzvm qq...
output:
841929
result:
ok single line: '841929'
Test #13:
score: 0
Accepted
time: 2ms
memory: 4028kb
input:
10 15 45 aa rrraxrarrkakxaa kr rkrarxrkxrark kkkakarxrr rrkakarxrr axxxaxakkkxxkrk aaxrrkarxaxaxk xrxa aaaakxxkaraar rxrr axraaaaxxxxkxk xx rrxx xakkxrrx k rkarrxkkrx rara xxaarakax raraakkaaaxa kxxr kraxkaxaar x xkkkkxxkk rkkarr krxkkxkrxkxkxax araxkkrx arar aaa xaarkxarkxxk xrk krrkkxrxa xaxrkxrax...
output:
322551
result:
ok single line: '322551'
Test #14:
score: 0
Accepted
time: 9ms
memory: 4484kb
input:
18 18 50 pnn pnppplnlpnnllpplnn pllnpppl llpppplnppnnppnlp lln lplnnnlnplnn nlllppllplppplll lllppp plplplpllpppnllll ppplpnplnnpp ppnpnnn nnnnpnnppnnnnpn npllnppnnl pnpnl pnpll npll lnlnlpppplpnplpnp npnlnnlnllpplpp nlplpp nnppnllppllpnnll ppnlnlnplnllnl pnplplplllpnnp lpnnppnlppnnn ppnlpnp nplnpnp...
output:
389309
result:
ok single line: '389309'
Test #15:
score: 0
Accepted
time: 9ms
memory: 4328kb
input:
4 19 50 psmx wwpswpqqxymyytyx xp ywmasrmddtppwawdy yzsjgzjxazggprsnpa nngnqdgqpmpzjwt dznrtstpmrmyzzra qryzdgjpdxtpxypatzs zmyn wasyxsppqjpxzaradzw xmyngqtrgnpdnmywy spypzgmxq dxwrtnpg pqp jpqsxrqgxjrq dpwqs agzayxgqzwjwztr xpqtzxry rx njrr ajgwdwr ymjysjzgnqpwdxzjj pqazyxxryrmtzwmxn ms tqqrztnrrtzn...
output:
684686
result:
ok single line: '684686'
Test #16:
score: 0
Accepted
time: 0ms
memory: 3624kb
input:
3 20 0
output:
998674
result:
ok single line: '998674'
Test #17:
score: 0
Accepted
time: 18ms
memory: 4732kb
input:
3 20 50 gwogsnogslv dlwngqvnvvjod qvvwssloqlvjwld lgndnlwosjsdg qqjqsdolwddjs dnoojjwwnlodd sdsojlnvgwjqoslnno jddnnjwqvnjq solvgologqndgosjdgn vwdolvqsndnowoqwd qlwlogwqwndqlqsgjvvw onovnlwdowvwwn sddsvgonqnjlgd svsdlngdsndlqnqddjg dgvsngdsgq ggvdloloqsssnogv lsngqgodgwjosodq wsqvoolnqsjd joswdggll...
output:
507317
result:
ok single line: '507317'
Test #18:
score: 0
Accepted
time: 18ms
memory: 5068kb
input:
3 20 50 ploynntcvajxahnainmo vhgcnjxidsfbudfxozng vjsljvycjydraaxmfwec nkpkhtwpjqdserapecfw tufqdnmuodfrxlfafcia aerajvorujijmgebsvyt layevdwrdirqdbjiycgf suwgmhmnvqyhsilqyaok orundlohsmzncfbjifwg xallxiszxkxuahclwdjc uqnioqwsglsgdjjltvsn nkcgdhkhjeaocrncoyxu jcylizcagdlqfqyknmuc yqojefflbxbszhftdnj...
output:
17312
result:
ok single line: '17312'