QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#235269 | #670. K-th String | 8BQube# | AC ✓ | 1ms | 3592kb | C++20 | 1.5kb | 2023-11-02 16:40:01 | 2023-11-02 16:40:02 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
#define X first
#define Y second
#define pb push_back
#define ALL(v) v.begin(), v.end()
#define SZ(a) ((int)a.size())
const int MOD = 1e9 + 7;
void add(int &x, int val) {
x += val;
if (x >= MOD) x -= MOD;
}
int fac[30];
int dp[30][700];
void run_dp(vector<int> cost) {
memset(dp, 0, sizeof dp);
dp[0][0] = 1;
int sum = 0;
for (int v : cost) {
sum += v;
for (int i = SZ(cost); i >= 1; --i)
for (int j = v; j <= sum; ++j)
add(dp[i][j], dp[i - 1][j - v]);
}
}
int main() {
ios::sync_with_stdio(0), cin.tie(0);
fac[0] = 1;
for (int i = 1; i < 30; ++i)
fac[i] = (ll)fac[i - 1] * i % MOD;
int n, kth, ans = 0;
string s;
cin >> n >> kth >> s;
for (int i = 0; i + SZ(s) <= n; ++i) {
int zero = s[0] - 'a' + 1, one = n - zero, pre = 0;
for (int j = 0; j < SZ(s); ++j) {
if (s[j] <= s[0]) --zero;
else --one;
if (s[j] < s[0]) pre += n - (i + j);
}
int base = SZ(s) + pre;
if (base > kth) continue;
vector<int> cost;
for (int k = 0; k < i; ++k)
cost.pb(n - k);
for (int k = i + SZ(s); k < n; ++k)
cost.pb(n - k);
run_dp(cost);
add(ans, (ll)dp[zero][kth - base] * fac[zero] % MOD * fac[one] % MOD);
}
cout << ans << "\n";
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3380kb
input:
7 12 caedgfb
output:
0
result:
ok single line: '0'
Test #2:
score: 0
Accepted
time: 0ms
memory: 3520kb
input:
2 3 b
output:
1
result:
ok single line: '1'
Test #3:
score: 0
Accepted
time: 0ms
memory: 3444kb
input:
8 4 febadh
output:
0
result:
ok single line: '0'
Test #4:
score: 0
Accepted
time: 0ms
memory: 3456kb
input:
1 1 a
output:
1
result:
ok single line: '1'
Test #5:
score: 0
Accepted
time: 1ms
memory: 3488kb
input:
4 9 bca
output:
0
result:
ok single line: '0'
Test #6:
score: 0
Accepted
time: 0ms
memory: 3524kb
input:
3 2 bc
output:
0
result:
ok single line: '0'
Test #7:
score: 0
Accepted
time: 1ms
memory: 3588kb
input:
1 1 a
output:
1
result:
ok single line: '1'
Test #8:
score: 0
Accepted
time: 0ms
memory: 3484kb
input:
8 8 acgefbdh
output:
1
result:
ok single line: '1'
Test #9:
score: 0
Accepted
time: 1ms
memory: 3572kb
input:
4 7 cb
output:
2
result:
ok single line: '2'
Test #10:
score: 0
Accepted
time: 0ms
memory: 3480kb
input:
8 36 hgfaec
output:
2
result:
ok single line: '2'
Test #11:
score: 0
Accepted
time: 1ms
memory: 3536kb
input:
8 28 feadch
output:
1
result:
ok single line: '1'
Test #12:
score: 0
Accepted
time: 0ms
memory: 3476kb
input:
3 6 cba
output:
1
result:
ok single line: '1'
Test #13:
score: 0
Accepted
time: 0ms
memory: 3480kb
input:
8 24 fhgdce
output:
2
result:
ok single line: '2'
Test #14:
score: 0
Accepted
time: 0ms
memory: 3520kb
input:
1 1 a
output:
1
result:
ok single line: '1'
Test #15:
score: 0
Accepted
time: 0ms
memory: 3488kb
input:
8 17 dhcfbae
output:
1
result:
ok single line: '1'
Test #16:
score: 0
Accepted
time: 0ms
memory: 3452kb
input:
8 26 ebcgdfha
output:
1
result:
ok single line: '1'
Test #17:
score: 0
Accepted
time: 1ms
memory: 3580kb
input:
2 2 ab
output:
1
result:
ok single line: '1'
Test #18:
score: 0
Accepted
time: 0ms
memory: 3528kb
input:
6 5 abdef
output:
2
result:
ok single line: '2'
Test #19:
score: 0
Accepted
time: 0ms
memory: 3484kb
input:
6 10 bfaecd
output:
1
result:
ok single line: '1'
Test #20:
score: 0
Accepted
time: 0ms
memory: 3484kb
input:
8 26 fgbceah
output:
1
result:
ok single line: '1'
Test #21:
score: 0
Accepted
time: 0ms
memory: 3532kb
input:
8 8 afeghdbc
output:
1
result:
ok single line: '1'
Test #22:
score: 0
Accepted
time: 0ms
memory: 3456kb
input:
8 33 gaedbhfc
output:
1
result:
ok single line: '1'
Test #23:
score: 0
Accepted
time: 0ms
memory: 3524kb
input:
8 36 hdegbacf
output:
1
result:
ok single line: '1'
Test #24:
score: 0
Accepted
time: 0ms
memory: 3544kb
input:
1 1 a
output:
1
result:
ok single line: '1'
Test #25:
score: 0
Accepted
time: 1ms
memory: 3468kb
input:
2 3 ba
output:
1
result:
ok single line: '1'
Test #26:
score: 0
Accepted
time: 0ms
memory: 3488kb
input:
1 1 a
output:
1
result:
ok single line: '1'
Test #27:
score: 0
Accepted
time: 0ms
memory: 3484kb
input:
1 1 a
output:
1
result:
ok single line: '1'
Test #28:
score: 0
Accepted
time: 1ms
memory: 3528kb
input:
8 24 dafbge
output:
1
result:
ok single line: '1'
Test #29:
score: 0
Accepted
time: 1ms
memory: 3584kb
input:
1 1 a
output:
1
result:
ok single line: '1'
Test #30:
score: 0
Accepted
time: 0ms
memory: 3492kb
input:
8 28 fahdecgb
output:
1
result:
ok single line: '1'
Test #31:
score: 0
Accepted
time: 0ms
memory: 3480kb
input:
2 2 b
output:
1
result:
ok single line: '1'
Test #32:
score: 0
Accepted
time: 0ms
memory: 3588kb
input:
8 14 beahcfdg
output:
1
result:
ok single line: '1'
Test #33:
score: 0
Accepted
time: 0ms
memory: 3476kb
input:
1 1 a
output:
1
result:
ok single line: '1'
Test #34:
score: 0
Accepted
time: 0ms
memory: 3468kb
input:
8 13 chfgebad
output:
1
result:
ok single line: '1'
Test #35:
score: 0
Accepted
time: 0ms
memory: 3468kb
input:
4 9 cad
output:
1
result:
ok single line: '1'
Test #36:
score: 0
Accepted
time: 0ms
memory: 3584kb
input:
8 19 dcghfbea
output:
1
result:
ok single line: '1'
Test #37:
score: 0
Accepted
time: 0ms
memory: 3468kb
input:
7 13 cagfde
output:
1
result:
ok single line: '1'
Test #38:
score: 0
Accepted
time: 0ms
memory: 3540kb
input:
8 15 caefdhg
output:
1
result:
ok single line: '1'
Test #39:
score: 0
Accepted
time: 0ms
memory: 3476kb
input:
8 6 agchbe
output:
6
result:
ok single line: '6'
Test #40:
score: 0
Accepted
time: 0ms
memory: 3540kb
input:
8 24 ecdgbf
output:
2
result:
ok single line: '2'
Test #41:
score: 0
Accepted
time: 0ms
memory: 3484kb
input:
5 9 dac
output:
1
result:
ok single line: '1'
Test #42:
score: 0
Accepted
time: 0ms
memory: 3480kb
input:
8 16 cgehaf
output:
1
result:
ok single line: '1'
Test #43:
score: 0
Accepted
time: 1ms
memory: 3520kb
input:
6 15 ebfd
output:
2
result:
ok single line: '2'
Test #44:
score: 0
Accepted
time: 1ms
memory: 3524kb
input:
8 31 gcdebh
output:
2
result:
ok single line: '2'
Test #45:
score: 0
Accepted
time: 0ms
memory: 3476kb
input:
1 1 a
output:
1
result:
ok single line: '1'
Test #46:
score: 0
Accepted
time: 1ms
memory: 3540kb
input:
8 12 bfheagcd
output:
1
result:
ok single line: '1'
Test #47:
score: 0
Accepted
time: 1ms
memory: 3472kb
input:
3 2 b
output:
2
result:
ok single line: '2'
Test #48:
score: 0
Accepted
time: 0ms
memory: 3500kb
input:
9 7 bcidafg
output:
0
result:
ok single line: '0'
Test #49:
score: 0
Accepted
time: 1ms
memory: 3548kb
input:
2 1 a
output:
2
result:
ok single line: '2'
Test #50:
score: 0
Accepted
time: 0ms
memory: 3404kb
input:
18 94 pgamldbkqncrfeji
output:
0
result:
ok single line: '0'
Test #51:
score: 0
Accepted
time: 0ms
memory: 3568kb
input:
22 199 rilhdvfuecpbakjtoqsn
output:
0
result:
ok single line: '0'
Test #52:
score: 0
Accepted
time: 1ms
memory: 3444kb
input:
4 5 dba
output:
0
result:
ok single line: '0'
Test #53:
score: 0
Accepted
time: 0ms
memory: 3388kb
input:
2 1 ba
output:
0
result:
ok single line: '0'
Test #54:
score: 0
Accepted
time: 0ms
memory: 3532kb
input:
2 1 a
output:
2
result:
ok single line: '2'
Test #55:
score: 0
Accepted
time: 0ms
memory: 3460kb
input:
26 154 jrlnfwachzebpoktudivmqysxg
output:
1
result:
ok single line: '1'
Test #56:
score: 0
Accepted
time: 1ms
memory: 3484kb
input:
3 3 b
output:
2
result:
ok single line: '2'
Test #57:
score: 0
Accepted
time: 1ms
memory: 3572kb
input:
26 281 ucptxmzojbeygsqkadhvwrfnil
output:
1
result:
ok single line: '1'
Test #58:
score: 0
Accepted
time: 0ms
memory: 3520kb
input:
11 40 gbhiackjdfe
output:
1
result:
ok single line: '1'
Test #59:
score: 0
Accepted
time: 0ms
memory: 3588kb
input:
26 179 kobzgdjyticevuqwmprafhxnsl
output:
1
result:
ok single line: '1'
Test #60:
score: 0
Accepted
time: 0ms
memory: 3484kb
input:
5 5 bda
output:
2
result:
ok single line: '2'
Test #61:
score: 0
Accepted
time: 0ms
memory: 3448kb
input:
22 204 rkhtbvpgfqoudmjniaclse
output:
1
result:
ok single line: '1'
Test #62:
score: 0
Accepted
time: 0ms
memory: 3524kb
input:
16 95 lpnhgdmebjcoka
output:
2
result:
ok single line: '2'
Test #63:
score: 0
Accepted
time: 0ms
memory: 3584kb
input:
26 94 fczijtnmdoxeskhypwbvquglar
output:
1
result:
ok single line: '1'
Test #64:
score: 0
Accepted
time: 0ms
memory: 3584kb
input:
20 42 dskhoptejmnbcrgalqif
output:
1
result:
ok single line: '1'
Test #65:
score: 0
Accepted
time: 1ms
memory: 3468kb
input:
8 19 efhacd
output:
2
result:
ok single line: '2'
Test #66:
score: 0
Accepted
time: 0ms
memory: 3524kb
input:
1 1 a
output:
1
result:
ok single line: '1'
Test #67:
score: 0
Accepted
time: 1ms
memory: 3460kb
input:
26 148 lyvxhnpstqwfzjbdegumcakor
output:
1
result:
ok single line: '1'
Test #68:
score: 0
Accepted
time: 0ms
memory: 3540kb
input:
12 23 cfbgdahilj
output:
2
result:
ok single line: '2'
Test #69:
score: 0
Accepted
time: 0ms
memory: 3456kb
input:
26 311 wpiazehgvcsxjobrqfkmtldyun
output:
1
result:
ok single line: '1'
Test #70:
score: 0
Accepted
time: 0ms
memory: 3520kb
input:
26 302 vhixsutaewdlfrbjqmngczyokp
output:
1
result:
ok single line: '1'
Test #71:
score: 0
Accepted
time: 1ms
memory: 3520kb
input:
26 261 swtflxorcpehjdzguivkaqyb
output:
2
result:
ok single line: '2'
Test #72:
score: 0
Accepted
time: 0ms
memory: 3584kb
input:
10 49 iaejgcdfh
output:
1
result:
ok single line: '1'
Test #73:
score: 0
Accepted
time: 0ms
memory: 3584kb
input:
26 82 enyqsdujflzrcbwhgtaxkivopm
output:
1
result:
ok single line: '1'
Test #74:
score: 0
Accepted
time: 0ms
memory: 3476kb
input:
5 5 bed
output:
1
result:
ok single line: '1'
Test #75:
score: 0
Accepted
time: 0ms
memory: 3516kb
input:
26 96 fzrbpehcvywjgxknuoqtalimsd
output:
1
result:
ok single line: '1'
Test #76:
score: 0
Accepted
time: 1ms
memory: 3520kb
input:
10 14 bhdcjaige
output:
1
result:
ok single line: '1'
Test #77:
score: 0
Accepted
time: 1ms
memory: 3440kb
input:
26 342 yqsbrektndmxuolaivzfchgpw
output:
1
result:
ok single line: '1'
Test #78:
score: 0
Accepted
time: 1ms
memory: 3528kb
input:
13 16 bedigmalcfk
output:
2
result:
ok single line: '2'
Test #79:
score: 0
Accepted
time: 1ms
memory: 3528kb
input:
26 219 qzbgpfalmvdunjsotrcwkihe
output:
2
result:
ok single line: '2'
Test #80:
score: 0
Accepted
time: 0ms
memory: 3456kb
input:
22 56 dniktuajmpceqlbohrgs
output:
2
result:
ok single line: '2'
Test #81:
score: 0
Accepted
time: 1ms
memory: 3460kb
input:
26 77 dcgilpkznbrvuwehtaxmfyoqsj
output:
1
result:
ok single line: '1'
Test #82:
score: 0
Accepted
time: 1ms
memory: 3496kb
input:
5 3 ace
output:
6
result:
ok single line: '6'
Test #83:
score: 0
Accepted
time: 0ms
memory: 3580kb
input:
26 159 krzcwglqfjpbnaiumsyhdvotxe
output:
1
result:
ok single line: '1'
Test #84:
score: 0
Accepted
time: 0ms
memory: 3420kb
input:
3 1 a
output:
6
result:
ok single line: '6'
Test #85:
score: 0
Accepted
time: 1ms
memory: 3468kb
input:
26 251 tpvyjcaluxefgqwbnrmikszo
output:
2
result:
ok single line: '2'
Test #86:
score: 0
Accepted
time: 1ms
memory: 3548kb
input:
16 127 olbemcpafjndkgi
output:
1
result:
ok single line: '1'
Test #87:
score: 0
Accepted
time: 0ms
memory: 3520kb
input:
4 9 d
output:
6
result:
ok single line: '6'
Test #88:
score: 0
Accepted
time: 0ms
memory: 3476kb
input:
8 4 fg
output:
0
result:
ok single line: '0'
Test #89:
score: 0
Accepted
time: 0ms
memory: 3536kb
input:
8 19 g
output:
0
result:
ok single line: '0'
Test #90:
score: 0
Accepted
time: 0ms
memory: 3456kb
input:
6 14 dc
output:
16
result:
ok single line: '16'
Test #91:
score: 0
Accepted
time: 0ms
memory: 3572kb
input:
8 14 cefgd
output:
4
result:
ok single line: '4'
Test #92:
score: 0
Accepted
time: 1ms
memory: 3548kb
input:
8 24 fegb
output:
12
result:
ok single line: '12'
Test #93:
score: 0
Accepted
time: 0ms
memory: 3468kb
input:
8 14 d
output:
4320
result:
ok single line: '4320'
Test #94:
score: 0
Accepted
time: 0ms
memory: 3480kb
input:
8 14 cbhf
output:
18
result:
ok single line: '18'
Test #95:
score: 0
Accepted
time: 1ms
memory: 3568kb
input:
8 19 eb
output:
612
result:
ok single line: '612'
Test #96:
score: 0
Accepted
time: 0ms
memory: 3476kb
input:
5 5 b
output:
24
result:
ok single line: '24'
Test #97:
score: 0
Accepted
time: 1ms
memory: 3584kb
input:
8 6 be
output:
600
result:
ok single line: '600'
Test #98:
score: 0
Accepted
time: 1ms
memory: 3468kb
input:
8 16 degb
output:
16
result:
ok single line: '16'
Test #99:
score: 0
Accepted
time: 0ms
memory: 3472kb
input:
8 16 e
output:
2880
result:
ok single line: '2880'
Test #100:
score: 0
Accepted
time: 0ms
memory: 3468kb
input:
6 17 e
output:
96
result:
ok single line: '96'
Test #101:
score: 0
Accepted
time: 1ms
memory: 3476kb
input:
22 41 urbv
output:
0
result:
ok single line: '0'
Test #102:
score: 0
Accepted
time: 1ms
memory: 3460kb
input:
19 53 bksora
output:
0
result:
ok single line: '0'
Test #103:
score: 0
Accepted
time: 0ms
memory: 3532kb
input:
8 17 a
output:
0
result:
ok single line: '0'
Test #104:
score: 0
Accepted
time: 0ms
memory: 3592kb
input:
26 310 wxglnbcsfim
output:
707619005
result:
ok single line: '707619005'
Test #105:
score: 0
Accepted
time: 0ms
memory: 3468kb
input:
14 57 femchdbnlgj
output:
2
result:
ok single line: '2'
Test #106:
score: 0
Accepted
time: 1ms
memory: 3576kb
input:
26 190 n
output:
793426072
result:
ok single line: '793426072'
Test #107:
score: 0
Accepted
time: 0ms
memory: 3592kb
input:
19 177 q
output:
384492431
result:
ok single line: '384492431'
Test #108:
score: 0
Accepted
time: 1ms
memory: 3496kb
input:
26 148 lwu
output:
147045489
result:
ok single line: '147045489'
Test #109:
score: 0
Accepted
time: 1ms
memory: 3468kb
input:
14 62 i
output:
267468772
result:
ok single line: '267468772'
Test #110:
score: 0
Accepted
time: 1ms
memory: 3528kb
input:
14 48 ga
output:
327196800
result:
ok single line: '327196800'
Test #111:
score: 0
Accepted
time: 1ms
memory: 3472kb
input:
26 181 okvubjzwdxqmc
output:
432166393
result:
ok single line: '432166393'
Test #112:
score: 0
Accepted
time: 1ms
memory: 3460kb
input:
26 310 y
output:
576292958
result:
ok single line: '576292958'
Test #113:
score: 0
Accepted
time: 1ms
memory: 3580kb
input:
26 102 gmoecsvxbqfptdukwrnyaj
output:
24
result:
ok single line: '24'
Test #114:
score: 0
Accepted
time: 1ms
memory: 3476kb
input:
15 71 gdbjakomcle
output:
6
result:
ok single line: '6'
Test #115:
score: 0
Accepted
time: 1ms
memory: 3556kb
input:
26 94 hrjcuao
output:
922356513
result:
ok single line: '922356513'
Test #116:
score: 0
Accepted
time: 0ms
memory: 3472kb
input:
9 1 a
output:
362880
result:
ok single line: '362880'
Test #117:
score: 0
Accepted
time: 1ms
memory: 3484kb
input:
26 81 fbxgtinmuohswrk
output:
6773760
result:
ok single line: '6773760'
Test #118:
score: 0
Accepted
time: 0ms
memory: 3452kb
input:
15 76 jdlkiboacn
output:
48
result:
ok single line: '48'
Test #119:
score: 0
Accepted
time: 1ms
memory: 3492kb
input:
26 225 s
output:
298955907
result:
ok single line: '298955907'
Test #120:
score: 0
Accepted
time: 0ms
memory: 3460kb
input:
26 75 hysotxlfcg
output:
629258561
result:
ok single line: '629258561'
Test #121:
score: 0
Accepted
time: 1ms
memory: 3460kb
input:
26 169 p
output:
942577163
result:
ok single line: '942577163'
Test #122:
score: 0
Accepted
time: 0ms
memory: 3520kb
input:
14 88 kh
output:
89268480
result:
ok single line: '89268480'
Extra Test:
score: 0
Extra Test Passed