Task: | Spin-Pop-Squeeze-Clap |
Sender: | aalto2024c_007 |
Submission time: | 2024-09-18 17:17:55 +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.06 s | details |
#7 | ACCEPTED | 0.01 s | details |
#8 | ACCEPTED | 0.04 s | details |
#9 | ACCEPTED | 0.02 s | details |
#10 | ACCEPTED | 0.01 s | details |
#11 | ACCEPTED | 0.01 s | details |
#12 | ACCEPTED | 0.01 s | details |
#13 | ACCEPTED | 0.02 s | details |
#14 | ACCEPTED | 0.01 s | details |
#15 | ACCEPTED | 0.01 s | details |
#16 | ACCEPTED | 0.03 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.02 s | details |
#23 | ACCEPTED | 0.02 s | details |
#24 | ACCEPTED | 0.01 s | details |
#25 | ACCEPTED | 0.03 s | details |
#26 | ACCEPTED | 0.05 s | details |
#27 | ACCEPTED | 0.01 s | details |
#28 | ACCEPTED | 0.06 s | details |
#29 | ACCEPTED | 0.06 s | details |
#30 | ACCEPTED | 0.04 s | details |
#31 | ACCEPTED | 0.02 s | details |
#32 | ACCEPTED | 0.03 s | details |
#33 | ACCEPTED | 0.04 s | details |
#34 | ACCEPTED | 0.01 s | details |
#35 | ACCEPTED | 0.03 s | details |
Compiler report
input/code.cpp: In function 'void init(const string&, const string&)': input/code.cpp:34:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare] 34 | for(int i=0; i<a.size(); i++) s1[i] = (int)a[i] - (int)('0'); | ~^~~~~~~~~ input/code.cpp:35:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare] 35 | for(int i=0; i<b.size(); i++) s2[i] = (int)b[i] - (int)('0'); | ~^~~~~~~~~
Code
#include <bits/stdc++.h> using namespace std; typedef unsigned long long ull; typedef long long ll; static int8_t s1[1001]; static int8_t s2[1001]; static int n, m; static int costs[1001][1001]; void makeCosts(){ costs[0][0] = 0; for(int i=0; i<n+1; i++){ costs[i][0] = i; } for(int j=0; j<m+1; j++){ costs[0][j] = j; } for(int j=1; j<m+1; j++){ for(int i=1; i<n+1; i++){ costs[i][j] = min({ costs[i-1][j] + 1, costs[i][j-1] + 1, costs[i-1][j-1] + (int)(s1[i-1] != s2[j-1]), }); } } } void init(const string& a, const string& b){ for(int i=0; i<a.size(); i++) s1[i] = (int)a[i] - (int)('0'); for(int i=0; i<b.size(); i++) s2[i] = (int)b[i] - (int)('0'); makeCosts(); } int main(){ string a, b; cin >> a; cin >> b; // if(b.size() > a.size()) // swap(a,b); n = a.size(); m = b.size(); vector<ull> distances; for(int c=0; c<10; c++){ init(a, b); for(int i=0; i<n; i++) s1[i] = (s1[i] + c) % 10; // for(int i=0; i<m; i++) s2[i] = (s2[i] + c) % 10; makeCosts(); auto d = costs[n][m]; distances.push_back(c + d); } cout << *min_element(distances.begin(), distances.end()) << endl; return 0; }
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 |