第一行一个数字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; }