Task: | Spin-Pop-Squeeze-Clap |
Sender: | aalto2024c_002 |
Submission time: | 2024-09-18 17:47:51 +0300 |
Language: | C++ (C++20) |
Status: | READY |
Result: | ACCEPTED |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.00 s | details |
#2 | ACCEPTED | 0.00 s | details |
#3 | ACCEPTED | 0.00 s | details |
#4 | ACCEPTED | 0.00 s | details |
#5 | ACCEPTED | 0.00 s | details |
#6 | ACCEPTED | 0.08 s | details |
#7 | ACCEPTED | 0.01 s | details |
#8 | ACCEPTED | 0.06 s | details |
#9 | ACCEPTED | 0.02 s | details |
#10 | ACCEPTED | 0.00 s | details |
#11 | ACCEPTED | 0.02 s | details |
#12 | ACCEPTED | 0.01 s | details |
#13 | ACCEPTED | 0.03 s | details |
#14 | ACCEPTED | 0.01 s | details |
#15 | ACCEPTED | 0.01 s | details |
#16 | ACCEPTED | 0.04 s | details |
#17 | ACCEPTED | 0.02 s | details |
#18 | ACCEPTED | 0.01 s | details |
#19 | ACCEPTED | 0.01 s | details |
#20 | ACCEPTED | 0.00 s | details |
#21 | ACCEPTED | 0.01 s | details |
#22 | ACCEPTED | 0.03 s | details |
#23 | ACCEPTED | 0.03 s | details |
#24 | ACCEPTED | 0.02 s | details |
#25 | ACCEPTED | 0.04 s | details |
#26 | ACCEPTED | 0.06 s | details |
#27 | ACCEPTED | 0.01 s | details |
#28 | ACCEPTED | 0.09 s | details |
#29 | ACCEPTED | 0.08 s | details |
#30 | ACCEPTED | 0.05 s | details |
#31 | ACCEPTED | 0.03 s | details |
#32 | ACCEPTED | 0.03 s | details |
#33 | ACCEPTED | 0.06 s | details |
#34 | ACCEPTED | 0.01 s | details |
#35 | ACCEPTED | 0.03 s | details |
Code
#include <bits/stdc++.h> using namespace std; #define int long long string to_string(string s) { return '"' + s + '"'; } string to_string(const char* s) { return to_string((string) s); } string to_string(bool b) { return (b ? "true" : "false"); } template <typename A, typename B> string to_string(pair<A, B> p) { return "(" + to_string(p.first) + ", " + to_string(p.second) + ")"; } template <typename A> string to_string(A v) { bool first = true; string res = "{"; for (const auto &x : v) { if (!first) { res += ", "; } first = false; res += to_string(x); } res += "}"; return res; } void debug_out() { cerr << endl; } template <typename Head, typename... Tail> void debug_out(Head H, Tail... T) { cerr << " " << to_string(H); debug_out(T...); } #ifdef LOCAL #define debug(...) cerr << "[" << #__VA_ARGS__ << "]:", debug_out(__VA_ARGS__) #else #define debug(...) 42 #endif const int N = 1e5 + 5; int n, m; int edit(string a, string b) { int m = a.size(), n = b.size(); vector<vector<int>> dp(m + 1, vector<int>(n + 1, 1e9)); dp[0][0] = 0; for (int i = 1; i <= m; i++) dp[i][0] = i; for (int j = 1; j <= n; j++) dp[0][j] = j; for (int i = 1; i <= m; i++) { for (int j = 1; j <= n; j++) { if (a[i - 1] == b[j - 1]) dp[i][j] = dp[i - 1][j - 1]; else { dp[i][j] = min(dp[i][j], dp[i - 1][j] + 1); dp[i][j] = min(dp[i][j], dp[i][j - 1] + 1); dp[i][j] = min(dp[i][j], dp[i - 1][j - 1] + 1); } } } return dp[m][n]; } string a, b; signed main() { cin.tie(0)->sync_with_stdio(0); cin >> a >> b; n = a.size(); m = b.size(); int ans = edit(a, b); string s = a; int cur = 0; for (int ite = 0; ite < 10; ite++) { // clap cur++; for (char& c : s) { int num = c - '0'; c = '0' + (num + 1) % 10; } ans = min(ans, edit(s, b) + cur); } cout << ans; }
Test details
Test 1
Verdict: ACCEPTED
input |
---|
111222 283303 |
correct output |
---|
4 |
user output |
---|
4 |
Test 2
Verdict: ACCEPTED
input |
---|
123123 54545 |
correct output |
---|
4 |
user output |
---|
4 |
Test 3
Verdict: ACCEPTED
input |
---|
111 222 |
correct output |
---|
1 |
user output |
---|
1 |
Test 4
Verdict: ACCEPTED
input |
---|
999 999 |
correct output |
---|
0 |
user output |
---|
0 |
Test 5
Verdict: ACCEPTED
input |
---|
450 57 |
correct output |
---|
2 |
user output |
---|
2 |
Test 6
Verdict: ACCEPTED
input |
---|
660487647593824219489241157815... |
correct output |
---|
674 |
user output |
---|
674 |
Test 7
Verdict: ACCEPTED
input |
---|
914177763170669074391500080636... |
correct output |
---|
130 |
user output |
---|
130 |
Test 8
Verdict: ACCEPTED
input |
---|
011524493909266858784005756682... |
correct output |
---|
681 |
user output |
---|
681 |
Test 9
Verdict: ACCEPTED
input |
---|
982597919074833788762328601290... |
correct output |
---|
717 |
user output |
---|
717 |
Test 10
Verdict: ACCEPTED
input |
---|
416721106840388542143044324451... |
correct output |
---|
215 |
user output |
---|
215 |
Test 11
Verdict: ACCEPTED
input |
---|
458073021573681930364262129972... |
correct output |
---|
473 |
user output |
---|
473 |
Test 12
Verdict: ACCEPTED
input |
---|
917400297550473688139849165156... |
correct output |
---|
699 |
user output |
---|
699 |
Test 13
Verdict: ACCEPTED
input |
---|
260181590830166131860913909960... |
correct output |
---|
584 |
user output |
---|
584 |
Test 14
Verdict: ACCEPTED
input |
---|
562301238360777679361730486761... |
correct output |
---|
284 |
user output |
---|
284 |
Test 15
Verdict: ACCEPTED
input |
---|
954220587915890627622301289161... |
correct output |
---|
416 |
user output |
---|
416 |
Test 16
Verdict: ACCEPTED
input |
---|
067903774208751350629566447245... |
correct output |
---|
442 |
user output |
---|
442 |
Test 17
Verdict: ACCEPTED
input |
---|
877893287921742180967929081003... |
correct output |
---|
358 |
user output |
---|
358 |
Test 18
Verdict: ACCEPTED
input |
---|
485260574793809275253093185610... |
correct output |
---|
442 |
user output |
---|
442 |
Test 19
Verdict: ACCEPTED
input |
---|
423232218340629042147624537896... |
correct output |
---|
192 |
user output |
---|
192 |
Test 20
Verdict: ACCEPTED
input |
---|
983444174766143554582284201195... |
correct output |
---|
83 |
user output |
---|
83 |
Test 21
Verdict: ACCEPTED
input |
---|
308023002531575464533553486397... |
correct output |
---|
984 |
user output |
---|
984 |
Test 22
Verdict: ACCEPTED
input |
---|
774637064330445294039402907794... |
correct output |
---|
544 |
user output |
---|
544 |
Test 23
Verdict: ACCEPTED
input |
---|
645428410366485628023288358114... |
correct output |
---|
378 |
user output |
---|
378 |
Test 24
Verdict: ACCEPTED
input |
---|
175337727474341582323359837344... |
correct output |
---|
695 |
user output |
---|
695 |
Test 25
Verdict: ACCEPTED
input |
---|
081836584929414654154099313187... |
correct output |
---|
493 |
user output |
---|
493 |
Test 26
Verdict: ACCEPTED
input |
---|
241592066112579763355561876139... |
correct output |
---|
630 |
user output |
---|
630 |
Test 27
Verdict: ACCEPTED
input |
---|
664737828830059612330669705871... |
correct output |
---|
559 |
user output |
---|
559 |
Test 28
Verdict: ACCEPTED
input |
---|
230972151340592860909446321989... |
correct output |
---|
696 |
user output |
---|
696 |
Test 29
Verdict: ACCEPTED
input |
---|
410946685234703970117608650309... |
correct output |
---|
691 |
user output |
---|
691 |
Test 30
Verdict: ACCEPTED
input |
---|
692323212407710827747149254185... |
correct output |
---|
536 |
user output |
---|
536 |
Test 31
Verdict: ACCEPTED
input |
---|
034704049619193895285878119956... |
correct output |
---|
467 |
user output |
---|
467 |
Test 32
Verdict: ACCEPTED
input |
---|
336980270982636303223976539004... |
correct output |
---|
543 |
user output |
---|
543 |
Test 33
Verdict: ACCEPTED
input |
---|
744311485456233719196607507429... |
correct output |
---|
570 |
user output |
---|
570 |
Test 34
Verdict: ACCEPTED
input |
---|
289232763326229330631165228849... |
correct output |
---|
563 |
user output |
---|
563 |
Test 35
Verdict: ACCEPTED
input |
---|
159941856600173517598637236698... |
correct output |
---|
431 |
user output |
---|
431 |