QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#19186 | #1826. The Paladin | foreverlasting# | AC ✓ | 3ms | 3872kb | C++20 | 4.4kb | 2022-01-28 13:40:44 | 2022-05-06 04:23:53 |
Judging History
answer
//2022.1.28 by ljz
//email [email protected]
//if you find any bug in my code
//please tell me
#include<bits/stdc++.h>
//#include<ext/pb_ds/tree_policy.hpp>
//#include<ext/pb_ds/assoc_container.hpp>
using namespace std;
//using namespace __gnu_pbds;
//using namespace __gnu_cxx;
#define res int
#define LL long long
#define Inf 0x3f3f3f3f
#define sup 0x7fffffff
#define inf 0x3f3f3f3f
#define INF 2000000000000000000
//#define unl __int128
#define eps 1e-10
#define RG
#define db double
#define pc(x) __builtin_popcount(x)
#define ctz(x) __builtin_ctz(x)
//#define pc(x) __builtin_popcountll(x)
typedef pair<int,int> Pair;
//#define poly vector<int>
#define mp make_pair
#define fi first
#define se second
#define pi acos(-1.0)
#define pb push_back
#define ull unsigned LL
#define uint unsigned int
#define lowbit(x) ((x)&-(x))
#define gc getchar
#define ld long db
//template <class T>using Tree=tree<T,null_type,less<T>,rb_tree_tag,tree_order_statistics_node_update>;
//inline int gc() {
// static char buf[100000],*p1,*p2;
// return p1==p2&&(p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++;
//}
//char sr[1<<21],z[20];
//int C=-1,Z=0;
//inline void Ot(){fwrite(sr,1,C+1,stdout),C=-1;}
//inline void print(RG LL x){
// if(C>1<<20)Ot();if(x<0)sr[++C]='-',x=-x;
// while(z[++Z]=x%10+48,x/=10);
// while(sr[++C]=z[Z],--Z);
//}
template <typename T> inline void Read(T &x) {
res c=gc();
bool f=false;
for(x=0;!isdigit(c);c=gc())if(c=='-')f=true;
for(;isdigit(c);c=gc())x=x*10+c-'0';
if(f)x=-x;
}
inline int read() {
res s=0,ch=gc(),w=1;
while(ch<'0'||ch>'9'){
if(ch=='-')w=-1;
else if(ch==EOF)break;
ch=gc();
}
while(ch>='0'&&ch<='9')s=s*10+ch-'0',ch=gc();
return s*w;
}
inline LL Read() {
RG LL s=0;
res ch=gc(),w=1;
while(ch<'0'||ch>'9'){
if(ch=='-')w=-1;
else if(ch==EOF)break;
ch=gc();
}
while(ch>='0'&&ch<='9')s=s*10+ch-'0',ch=gc();
return s*w;
}
inline void write(RG __int128 x){
if(x>10)write(x/10);
putchar(int(x%10)+'0');
}
const int kcz=998244353;
const int G=3,GI=332748118;
//inline void add(res &x,const res &y){
// x+=y,x>=kcz?x-=kcz:1;
//}
//inline int Add(const res &x,const res &y){
// return x+y>=kcz?x+y-kcz:x+y;
//}
//inline int mul(const res &x,const res &y){
// return int(1ll*x*y%kcz);
//}
#define add(x,y) ((x)+=(y),(x)>=kcz?(x)-=kcz:1)
#define Add(x,y) ((x)+(y)>=kcz?(x)+(y)-kcz:(x)+(y))
#define mul(x,y) (int)((LL)(x)*(y)%kcz)
#define Mul(x,y,d) (int)((ull)(x)*(y)/(d)%kcz)
inline int qpow(res x,res y=kcz-2){
res ret=1;
while(y){
if(y&1)ret=mul(ret,x);
x=mul(x,x),y>>=1;
}
return ret;
}
inline int qpow(res x,res y,const res &ljc){
res ret=1;
while(y){
if(y&1)ret=(int)(1ll*ret*x%ljc);
x=(int)(1ll*x*x%ljc),y>>=1;
}
return ret;
}
mt19937 rng(chrono::system_clock::now().time_since_epoch().count());
//cloclim_t start=cloclim();
//inline void clim(){
// if(1.0*(cloclim()-start)/CLOCKS_PER_SEC>0.1)exit(0);
//}
//2022.1.28 by ljz
//email [email protected]
//if you find any bug in my code
//please tell me
namespace MAIN{
int n,k;
int a[26][26];
LL f[101][26];
char str[10];
#define ckmin(x,y) ((x)>(y)?(x)=(y):1)
inline void MAIN(){
n=read(),k=read();
memset(f,0x3f,sizeof(f));
memset(a,0x3f,sizeof(a));
for(res i=1;i<=n;i++){
scanf("%s",str+1);
res c=read();
ckmin(a[str[1]-'a'][str[2]-'a'],c);
}
for(res i=0;i<26;i++)f[1][i]=0;
for(res i=2;i<=(k+1)/2;i++){
for(res j=0;j<26;j++){
for(res l=0;l<26;l++){
ckmin(f[i][j],f[i-1][l]+a[l][j]+a[j][l]);
}
}
}
if(~k&1){
LL ans=inf;
for(res i=0;i<26;i++)ans=min(ans,f[k/2][i]+a[i][i]);
printf("%lld\n",ans>=10000?-1:ans);
}
else{
LL ans=inf;
for(res i=0;i<26;i++)ans=min(ans,f[k/2+1][i]);
printf("%lld\n",ans>=10000?-1:ans);
}
}
}
int main(){
// srand(time(0));
// freopen("1.in","r",stdin);
// freopen("1.out","w",stdout);
res Case=1;
for(res T=1;T<=Case;T++)MAIN::MAIN();
// Ot();
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 3ms
memory: 3800kb
input:
5 9 ab 4 ba 1 bd 3 db 100 bc 4
output:
20
result:
ok answer is '20'
Test #2:
score: 0
Accepted
time: 2ms
memory: 3668kb
input:
1 100 aa 100
output:
9900
result:
ok answer is '9900'
Test #3:
score: 0
Accepted
time: 3ms
memory: 3740kb
input:
676 100 aa 36 ab 55 ac 2 ad 75 ae 47 af 82 ag 55 ah 31 ai 40 aj 55 ak 27 al 84 am 93 an 4 ao 26 ap 70 aq 77 ar 100 as 13 at 97 au 97 av 42 aw 60 ax 3 ay 64 az 46 ba 72 bb 37 bc 35 bd 66 be 73 bf 67 bg 36 bh 62 bi 38 bj 45 bk 50 bl 10 bm 6 bn 43 bo 26 bp 3 bq 55 br 11 bs 94 bt 78 bu 78 bv 58 bw 12 bx...
output:
396
result:
ok answer is '396'
Test #4:
score: 0
Accepted
time: 2ms
memory: 3756kb
input:
676 100 aa 2 ab 79 ac 80 ad 60 ae 64 af 37 ag 26 ah 70 ai 49 aj 18 ak 63 al 75 am 51 an 7 ao 62 ap 56 aq 38 ar 40 as 35 at 61 au 59 av 86 aw 41 ax 69 ay 96 az 75 ba 68 bb 97 bc 99 bd 89 be 67 bf 27 bg 67 bh 28 bi 36 bj 5 bk 6 bl 83 bm 6 bn 35 bo 57 bp 51 bq 34 br 78 bs 78 bt 52 bu 79 bv 3 bw 52 bx 2...
output:
198
result:
ok answer is '198'
Test #5:
score: 0
Accepted
time: 1ms
memory: 3820kb
input:
676 100 aa 53 ab 91 ac 19 ad 42 ae 63 af 76 ag 4 ah 48 ai 71 aj 97 ak 51 al 90 am 14 an 3 ao 82 ap 39 aq 69 ar 93 as 89 at 57 au 16 av 10 aw 6 ax 96 ay 87 az 60 ba 62 bb 21 bc 27 bd 81 be 60 bf 75 bg 66 bh 16 bi 47 bj 32 bk 85 bl 24 bm 76 bn 9 bo 38 bp 46 bq 69 br 24 bs 2 bt 84 bu 34 bv 30 bw 61 bx ...
output:
198
result:
ok answer is '198'
Test #6:
score: 0
Accepted
time: 3ms
memory: 3784kb
input:
5 100 ab 100 bc 100 cd 100 de 100 ef 100
output:
-1
result:
ok answer is '-1'
Test #7:
score: 0
Accepted
time: 2ms
memory: 3816kb
input:
8 20 ab 8 ba 7 cd 10 dc 11 aa 100 bb 100 cc 15 dd 25
output:
204
result:
ok answer is '204'
Test #8:
score: 0
Accepted
time: 2ms
memory: 3808kb
input:
401 6 ol 34 ps 96 du 96 np 31 vc 20 dy 71 lk 62 xu 32 fn 2 mb 88 da 12 uy 25 pe 20 ms 96 wm 41 ed 67 bx 57 sb 20 de 3 ul 14 sm 14 tt 42 rw 34 ai 61 fh 65 im 34 cl 26 su 97 fj 80 xb 49 ew 98 vs 30 ls 77 pw 35 pv 51 yt 78 rv 91 st 98 cr 98 jg 1 nx 88 dj 68 ma 17 ay 9 hz 28 dx 85 gn 74 kb 56 nn 96 qn 1...
output:
20
result:
ok answer is '20'
Test #9:
score: 0
Accepted
time: 3ms
memory: 3784kb
input:
467 68 rq 42 ot 90 lf 36 gp 58 da 64 ve 53 mj 5 rk 37 hj 97 ro 31 dz 44 vz 69 xm 37 hq 77 zd 53 mm 78 aj 47 pj 9 jq 70 li 75 od 100 hx 47 or 53 kb 18 md 90 un 23 ef 27 gy 58 dl 22 ja 57 wf 90 gn 76 su 53 uh 75 ff 45 el 6 le 54 kh 88 pw 90 cv 90 sw 82 ka 85 gf 62 ma 93 tl 82 mf 25 ek 74 wh 31 qe 7 gc...
output:
454
result:
ok answer is '454'
Test #10:
score: 0
Accepted
time: 3ms
memory: 3820kb
input:
492 2 to 6 he 82 zy 44 jv 98 pq 4 zz 82 tx 82 tp 89 jw 33 tt 95 hf 62 gp 19 ox 28 em 11 ir 24 ou 79 jp 78 ny 17 fc 39 iv 23 qu 10 od 72 dr 16 gk 24 yc 2 nz 32 op 11 ys 35 qt 15 ip 51 gb 83 ob 4 xp 59 ic 56 gh 66 gm 27 oa 35 sj 82 lk 25 rp 53 ws 4 zm 76 tl 39 mt 31 oq 98 zx 52 ua 61 py 41 ii 74 ni 77...
output:
9
result:
ok answer is '9'
Test #11:
score: 0
Accepted
time: 0ms
memory: 3788kb
input:
94 90 iy 28 kc 65 vf 59 by 89 lo 46 qu 14 nx 73 xh 27 mr 31 lv 49 nl 62 wg 2 dn 55 ch 4 kg 83 he 53 ed 7 yj 26 pj 6 pz 68 jr 46 uk 35 xq 77 xx 58 ro 48 uz 41 ng 31 yn 59 mh 24 df 99 qj 67 gn 55 ou 18 rp 58 tk 48 ez 11 yh 74 qg 50 od 23 md 54 ak 60 dk 80 sy 96 bo 3 bf 4 hb 43 do 48 du 38 fs 78 rl 60 ...
output:
2136
result:
ok answer is '2136'
Test #12:
score: 0
Accepted
time: 0ms
memory: 3740kb
input:
28 68 qw 31 gx 35 xg 50 iv 17 yc 95 yd 43 kq 84 em 16 qr 43 zl 27 vr 75 bp 71 vz 75 il 65 br 82 ej 72 xb 73 mr 28 nu 31 ni 39 ck 31 te 17 rs 27 bc 56 uj 18 rv 28 nm 97 lu 12
output:
-1
result:
ok answer is '-1'
Test #13:
score: 0
Accepted
time: 2ms
memory: 3804kb
input:
107 94 ce 38 lx 49 ge 13 fh 25 zd 2 xs 93 su 25 ki 9 nh 82 wd 17 ut 77 kf 18 fi 53 gg 23 dp 69 nm 46 sw 48 re 70 vx 17 ew 91 uv 11 xc 62 ur 86 fx 54 fw 96 qe 32 th 73 if 3 rc 70 sg 5 nj 20 ov 5 qt 77 oi 11 kl 61 qs 92 xv 8 zz 69 ig 44 cm 68 yu 20 ii 79 vn 85 an 80 cv 20 sy 83 eu 92 dn 67 nc 67 rg 23...
output:
2139
result:
ok answer is '2139'
Test #14:
score: 0
Accepted
time: 1ms
memory: 3872kb
input:
163 87 fy 52 zq 46 kh 72 uv 16 vo 82 rn 91 np 10 ld 61 ss 48 sj 40 po 49 of 92 uj 25 jw 11 mo 3 oz 25 be 78 lf 8 xy 68 ph 11 dr 84 ol 75 fi 42 sf 41 si 16 zi 35 bl 9 qw 72 xu 37 xm 32 pq 55 ee 5 jc 98 tv 15 rb 31 fl 48 kx 61 jo 27 hi 97 ku 24 co 50 hn 45 eq 58 tz 55 je 49 ww 25 zg 14 vq 70 io 69 lb ...
output:
430
result:
ok answer is '430'
Test #15:
score: 0
Accepted
time: 0ms
memory: 3824kb
input:
435 21 yy 96 ah 78 nh 66 rb 23 hd 48 wi 88 yc 71 kd 7 tt 41 um 84 ki 37 ql 36 xl 88 uy 60 mq 85 mm 93 jn 42 pr 32 qj 69 kw 44 gp 85 lc 31 tg 45 xe 5 zg 26 bq 36 he 61 sk 22 jv 10 ln 14 zs 10 vn 3 va 36 zo 36 nf 56 af 95 ez 46 oy 89 ud 9 ol 100 sb 40 hx 28 zc 46 ad 35 xy 63 ia 56 fv 26 qp 65 zp 63 sw...
output:
20
result:
ok answer is '20'
Test #16:
score: 0
Accepted
time: 2ms
memory: 3788kb
input:
123 9 bm 97 pb 79 cv 96 qe 40 bq 7 ay 44 rn 98 mi 39 qz 34 yq 67 el 40 sr 56 wu 5 sf 14 vy 17 ic 99 dx 64 ee 43 oh 59 dd 45 fq 50 oj 32 oz 21 wd 90 ck 39 kl 67 zh 17 le 61 kr 98 xo 17 hm 75 po 56 fj 98 kf 28 fx 15 vl 9 ov 87 zi 99 mh 21 wq 93 dk 34 ad 9 aq 1 ua 83 cu 62 je 47 cl 26 iq 85 rg 86 up 61...
output:
24
result:
ok answer is '24'
Test #17:
score: 0
Accepted
time: 0ms
memory: 3712kb
input:
209 99 my 54 dw 5 rm 19 to 27 rq 26 ti 85 wx 1 nc 24 km 7 sg 90 xj 86 zv 7 ki 94 ca 29 ub 20 wp 20 ib 84 nk 17 cb 89 cz 51 ie 90 hn 16 ty 79 nz 32 lb 41 qg 11 ba 63 fc 43 xo 83 wy 80 pl 50 uc 55 xc 90 jt 83 vo 75 yk 47 jb 98 is 49 zg 15 oe 68 qn 100 cg 82 ps 14 yv 96 iy 43 hx 91 oj 87 ws 54 zy 64 pm...
output:
882
result:
ok answer is '882'
Test #18:
score: 0
Accepted
time: 2ms
memory: 3712kb
input:
676 100 aa 49 ab 56 ac 42 ad 37 ae 48 af 87 ag 83 ah 25 ai 18 aj 4 ak 53 al 74 am 6 an 53 ao 53 ap 56 aq 38 ar 32 as 73 at 13 au 49 av 51 aw 14 ax 90 ay 90 az 77 ba 24 bb 28 bc 20 bd 10 be 43 bf 30 bg 41 bh 47 bi 31 bj 45 bk 1 bl 76 bm 25 bn 56 bo 51 bp 23 bq 89 br 35 bs 31 bt 55 bu 20 bv 96 bw 10 b...
output:
99
result:
ok answer is '99'
Test #19:
score: 0
Accepted
time: 1ms
memory: 3800kb
input:
676 100 aa 100 ab 100 ac 100 ad 100 ae 100 af 100 ag 100 ah 100 ai 100 aj 100 ak 100 al 100 am 100 an 100 ao 100 ap 100 aq 100 ar 100 as 100 at 100 au 100 av 100 aw 100 ax 100 ay 100 az 100 ba 100 bb 100 bc 100 bd 100 be 100 bf 100 bg 100 bh 100 bi 100 bj 100 bk 100 bl 100 bm 100 bn 100 bo 100 bp 10...
output:
9900
result:
ok answer is '9900'