QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#149676#1826. The PaladinshoAC ✓1ms3800kbC++173.2kb2023-08-25 09:59:592023-08-25 10:00:01

Judging History

你现在查看的是最新测评结果

  • [2023-08-25 10:00:01]
  • 评测
  • 测评结果:AC
  • 用时:1ms
  • 内存:3800kb
  • [2023-08-25 09:59:59]
  • 提交

answer

// while (true) keepingTraining();
#include <bits/stdc++.h>

using namespace std;

#define int            long long int
#define F              first
#define S              second
#define pb             push_back
#define si             set <int>
#define vs             vector <string>
#define vi             vector <int>
#define dqi            deque<int>
#define pii            pair <int, int>
#define vpi            vector <pii>
#define vpp            vector <pair<int, pii>>
#define mii            map <int, int>
#define mpi            map <pii, int>
#define spi            set <pii>
#define endl           "\n"
#define sz(x)          ((int) x.size())
#define all(p)         p.begin(), p.end()
#define double         long double
#define que_max        priority_queue <int>
#define que_min        priority_queue <int, vi, greater<int>>
#define debug(...)     __f (#__VA_ARGS__, __VA_ARGS__)
#define FOR(i, a, b)   for (int i = (a); i < (b); i++)
#define F0R(i, a)      for (int i = 0; i < (a); i++)
#define print(a)       for(auto x : a) cout << x << " "; cout << endl
#define print1(a)      for(auto x : a) cout << x.F << " " << x.S << endl
#define print2(a, x, y)  for(int i = x; i < y; i++) cout<< a[i]<< " "; cout << endl

template <typename T, typename... Args>
void ccout(const T& arg, const Args &...args) {
  std::cout << arg;
  ((std::cout << " " << args), ...);
  std::cout << endl;
}

void ccin() {}

template <typename T, typename... Args>
void ccin(T& arg, Args &...args) {
  std::cin >> arg;
  ccin(args...);
}

template<typename Arg1>
void __f(const char* name, Arg1&& arg1) { cout << name << " : " << arg1 << endl; }

template<typename Arg1, typename... Args>
void __f(const char* names, Arg1&& arg1, Args &&... args) {
  const char* comma = strchr(names + 1, ',');
  cout.write(names, comma - names) << " : " << arg1 << " | ";
  __f(comma + 1, args...);
}

#define fastIO() ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);

void readWriteIO() {
  // This def is only in judges, so we can use in our code without problems
#ifndef ONLINE_JUDGE
  freopen("./input.txt", "r", stdin);
  freopen("./output.txt", "w", stdout);
#endif
  fastIO();
}

bool compare(const pair<string, int> a, pair<string, int> b) {
  return a.S < b.S;
}

void solve() {
  int n, k; ccin(n, k);
  vector<vi> v(26, vi(26, INT_MAX));
  F0R(i, n) {
    string s; int c; ccin(s, c);
    v[s[0] - 'a'][s[1] - 'a'] = c;
  }

  // for (auto x : v) {
  //   print(x);
  // }

  vi dp(26, 0);
  if (k % 2) {
    for (int i = 1; i < k; i += 2) {
      vi aux(26, INT_MAX);
      F0R(j, 26) {
        F0R(l, 26) {
          aux[l] = min(aux[l], dp[j] + v[j][l] + v[l][j]);
        }
      }
      dp = aux;
    }
  }
  if (k % 2 == 0) {
    vi aux(26, INT_MAX);
    dp = aux;
    F0R(i, 26) {
      dp[i] = min(dp[i], v[i][i]);
    }
    for (int i = 2; i < k; i += 2) {
      vi aux(26, INT_MAX);
      F0R(j, 26) {
        F0R(l, 26) {
          aux[l] = min(aux[l], dp[j] + v[j][l] + v[l][j]);
        }
      }
      dp = aux;
    }
  }

  int nmin = INT_MAX;
  for (auto x : dp) {
    nmin = min(nmin, x);
  }
  if (nmin == INT_MAX) { ccout(-1); }
  else { ccout(nmin); }
}

int32_t main() {
  // readWriteIO();
  fastIO();
  int t = 1;
  // cin >> t;
  while (t--) solve();
  return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 3756kb

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: 1ms
memory: 3588kb

input:

1 100
aa 100

output:

9900

result:

ok answer is '9900'

Test #3:

score: 0
Accepted
time: 0ms
memory: 3540kb

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: 1ms
memory: 3476kb

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: 0ms
memory: 3544kb

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: 1ms
memory: 3504kb

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: 0ms
memory: 3592kb

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: 1ms
memory: 3528kb

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: 1ms
memory: 3580kb

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: 1ms
memory: 3800kb

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: 1ms
memory: 3736kb

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: 1ms
memory: 3588kb

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: 1ms
memory: 3592kb

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: 3596kb

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: 1ms
memory: 3472kb

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: 1ms
memory: 3748kb

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: 1ms
memory: 3572kb

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: 1ms
memory: 3588kb

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: 3740kb

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'