Submission details
Task:Spin-Pop-Squeeze-Clap
Sender:aalto25c_003
Submission time:2025-09-17 20:38:57 +0300
Language:C++ (C++17)
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.00 sdetails
#2ACCEPTED0.00 sdetails
#3ACCEPTED0.00 sdetails
#4ACCEPTED0.00 sdetails
#5ACCEPTED0.00 sdetails
#60.00 sdetails
#70.01 sdetails
#80.00 sdetails
#90.00 sdetails
#100.01 sdetails
#110.00 sdetails
#120.00 sdetails
#130.00 sdetails
#140.00 sdetails
#150.00 sdetails
#160.00 sdetails
#170.00 sdetails
#180.00 sdetails
#190.00 sdetails
#200.00 sdetails
#210.00 sdetails
#220.00 sdetails
#230.00 sdetails
#240.00 sdetails
#250.00 sdetails
#260.00 sdetails
#270.00 sdetails
#280.00 sdetails
#290.00 sdetails
#300.00 sdetails
#310.00 sdetails
#320.00 sdetails
#330.00 sdetails
#340.00 sdetails
#350.00 sdetails

Code

#include <cstdint>
#include <iostream>
#include <vector>

// def ff(aa, bb, spin, myCache):
//     if myCache[bb][aa] != -1:
//         return myCache[bb][aa]
//     if aa == -1:
//         return bb+1
//     if bb == -1:
//         return aa+1
//     # print(spin)
//     mi = min(
//         ff(aa, bb-1, spin, myCache)+1,
//         ff(aa-1, bb, spin, myCache)+1,
//         ff(aa-1, bb-1, spin, myCache)+(0 if (numA[aa]+spin)%10 == (numB[bb])
//         else 1), # ff(aa-1, bb-1, spin+1, myCache)+1
//         )
//     myCache[bb][aa] = mi
//     return mi
int ff(int aaPos, std::vector<char> &aaArr, int aaLen, int bbPos,
       std::vector<char> &bbArr, int bbLen, int spin,
       std::vector<char> &myCache) {
  if (myCache[bbPos * aaLen + aaPos] != -1)
    return myCache[bbPos * aaLen + aaPos];
  if (aaPos == -1)
    return bbPos + 1;
  if (bbPos == -1)
    return aaPos + 1;

  int bbMinus1 =
      ff(aaPos, aaArr, aaLen, bbPos - 1, bbArr, bbLen, spin, myCache) + 1;
  int aaMinus1 =
      ff(aaPos - 1, aaArr, aaLen, bbPos, bbArr, bbLen, spin, myCache) + 1;
  int same =
      ff(aaPos - 1, aaArr, aaLen, bbPos - 1, bbArr, bbLen, spin, myCache) +
      ((aaArr[aaPos] + spin) % 10 == bbArr[bbPos] ? 0 : 1);
  int mi = same;
  if (aaMinus1 < mi)
    mi = aaMinus1;
  if (bbMinus1 < mi)
    mi = bbMinus1;
  myCache[bbPos * aaLen + aaPos] = mi;
  return mi;
}

int main() {
  uint64_t num1;
  std::cin >> num1;
  uint64_t num2;
  std::cin >> num2;

  std::vector<char> aaArr;
  std::vector<char> bbArr;

  while (num1 > 0) {
    int digit = num1 % 10;
    num1 /= 10;
    aaArr.push_back(digit);
  }
  while (num2 > 0) {
    int digit = num2 % 10;
    num2 /= 10;
    bbArr.push_back(digit);
  }
  int aaArrLen = aaArr.size();
  int bbArrLen = bbArr.size();
  int mi = 2147483647;
  for (int spin = 0; spin < 10; spin++) {
    std::vector<char> myCache(aaArrLen * bbArrLen, -1);
    int ret = ff(aaArrLen - 1, aaArr, aaArrLen, bbArrLen - 1, bbArr, bbArrLen,
                 spin, myCache);
    if (ret + spin < mi) {
      mi = ret + spin;
    }
  }
  std::cout << mi << std::endl;
}

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:

input
660487647593824219489241157815...

correct output
674

user output
8

Test 7

Verdict:

input
914177763170669074391500080636...

correct output
130

user output
8

Test 8

Verdict:

input
011524493909266858784005756682...

correct output
681

user output
8

Test 9

Verdict:

input
982597919074833788762328601290...

correct output
717

user output
8

Test 10

Verdict:

input
416721106840388542143044324451...

correct output
215

user output
8

Test 11

Verdict:

input
458073021573681930364262129972...

correct output
473

user output
8

Test 12

Verdict:

input
917400297550473688139849165156...

correct output
699

user output
8

Test 13

Verdict:

input
260181590830166131860913909960...

correct output
584

user output
8

Test 14

Verdict:

input
562301238360777679361730486761...

correct output
284

user output
8

Test 15

Verdict:

input
954220587915890627622301289161...

correct output
416

user output
8

Test 16

Verdict:

input
067903774208751350629566447245...

correct output
442

user output
8

Test 17

Verdict:

input
877893287921742180967929081003...

correct output
358

user output
8

Test 18

Verdict:

input
485260574793809275253093185610...

correct output
442

user output
8

Test 19

Verdict:

input
423232218340629042147624537896...

correct output
192

user output
8

Test 20

Verdict:

input
983444174766143554582284201195...

correct output
83

user output
8

Test 21

Verdict:

input
308023002531575464533553486397...

correct output
984

user output
8

Test 22

Verdict:

input
774637064330445294039402907794...

correct output
544

user output
8

Test 23

Verdict:

input
645428410366485628023288358114...

correct output
378

user output
8

Test 24

Verdict:

input
175337727474341582323359837344...

correct output
695

user output
8

Test 25

Verdict:

input
081836584929414654154099313187...

correct output
493

user output
8

Test 26

Verdict:

input
241592066112579763355561876139...

correct output
630

user output
8

Test 27

Verdict:

input
664737828830059612330669705871...

correct output
559

user output
8

Test 28

Verdict:

input
230972151340592860909446321989...

correct output
696

user output
8

Test 29

Verdict:

input
410946685234703970117608650309...

correct output
691

user output
8

Test 30

Verdict:

input
692323212407710827747149254185...

correct output
536

user output
8

Test 31

Verdict:

input
034704049619193895285878119956...

correct output
467

user output
8

Test 32

Verdict:

input
336980270982636303223976539004...

correct output
543

user output
8

Test 33

Verdict:

input
744311485456233719196607507429...

correct output
570

user output
8

Test 34

Verdict:

input
289232763326229330631165228849...

correct output
563

user output
8

Test 35

Verdict:

input
159941856600173517598637236698...

correct output
431

user output
8