第一行一个数字n,表示圆环的个数;
第二行一个字符串,长度为n,表示圆环当前的状态;
第三行一个字符串,长度为n,表示开锁的密码。
满足1 <= n <= 1000。
最少的操作次数。
3 123 321
4
4 0792 9470
8
#include <iostream>
#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <string>
#include <set>
#include <queue>
#include <algorithm>
using namespace std;
int n;
char str[1500];
int source[1500];
int target[1500];
int main() {
std::ios::sync_with_stdio(false);
cin >> n;
cin >> (str + 1);
for (int i = 1; i <= n; i++) {
source[i] = str[i] - '0';
}
cin >> (str + 1);
for (int i = 1; i <= n; i++) {
target[i] = str[i] - '0';
}
int sum = 0;
for (int i = 1; i <= n; i++) {
int moveLeft, moveRight;
if (source[i] <= target[i]) {
moveLeft = target[i] - source[i]; // source[i]向右
moveRight = (source[i] - 0 + 1) + 9 - target[i]; //source[i]向左
}
if (source[i] > target[i]) {
moveRight = source[i] - target[i]; // source[i]向左
moveLeft = (9 - source[i] + 1) + target[i] - 0; // source[i]向右
}
sum += min(moveLeft, moveRight);
}
cout << sum;
return 0;
}