QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#648946 | #6621. Luggage Lock | yeah14 | WA | 1ms | 3608kb | C++17 | 2.3kb | 2024-10-17 21:02:58 | 2024-10-17 21:03:06 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define ull long long
#define PII pair<int ,int>
const int INF = -1145141919810;
const int mod = 1e9 + 7;
const int N = 1e6 + 7;
int fp(int a, int x, int mod) {
int ans = 1;
while (x) {
if (x & 1)ans *= a;
ans %= mod;
a *= a;
a %= mod;
x >>= 1;
}
return ans;
}
map<char, map<char,int>>p;
//map<char, int>p;
void solve() {
int a[4],b[4];
int c[4],d[4];
string s1, s2;
cin >> s1 >> s2;
for (int i = 0; i < 4; i++) {
a[i] = s1[i] - '0';
b[i] = s2[i] - '0';
c[i] = b[i] - a[i];
d[i] = c[i];
}
int ans = 0x3f3f3f;
for (int k = 0; k < 16; k++) {
int cc[4];
int j = k;
int f = 8;
int sss = 0;
for (int i = 0; i < 4; i++) {
cc[i] = j % 2;
j /= 2;
}
for (int i = 0; i < 4; i++) {
if (cc[i] == 1) {
if (c[i] > 0)d[i] =c[i]- 10;
else if (c[i] < 0)d[i] =c[i]+ 10;
}
else d[i] = c[i];
}
int s = 0, e = 0;
int t = abs(d[0]);
int res = 0;
int minn = 0;
//int minn;
for (int i = 0; i < 4; i++) {
if (i == 3) {
if (e != 3)res += abs(d[i])-minn;
else {
res += t-minn;
s = e;
t = 0;
}
}
else if (d[i] * d[i + 1] > 0&&abs(d[i])>abs(d[i+1]))
{
e = i + 1;
t = max(t, abs(d[i + 1]));
//minn = abs(d[i]);
}
else {
if (e < s) {
res += abs(d[i]);
s = i + 1;
continue;
}
res += t-minn;
s = e+1;
t = abs(d[i+1]);
if (d[i] * d[i + 1] > 0)minn = abs(d[i]);
else minn = 0;
}
}
ans = min(ans, res);
/*cout << res << endl;
for (int i = 0; i < 4; i++) {
cout << d[i] << " ";
}
cout << endl;*/
}
cout << ans << endl;
}
//&&(((sum[n]+k)%mid==0)||(sum[n]/mid!=(sum[n]+k)/mid)||(mid-(sum[n]%mid)>=k))
signed main() {
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
int t = 1;
cin >> t;
//er(9e7);
//cout << 7*4% 10;
while (t--)solve();
//pr[5216953]
}
//int n;
//cin >> n;
//for (int i = 1; i <= n; i++) {
// cin >> a[i];
//}
//int maxx = 0, minn = INF;
//int sum = 0;
//for (int i = n; i <= 1; i++) {
// sum += minn;
// if (top == 0) {
// minn = a[i];
// st[top++] = a[i];
// }
// else {
// if (a[i] > top && a[i] > minn)
// }
//}
//cout << maxx - minn << endl;
//7 2 1 4 5 1 3 3
//4 1000 1000 1000 1000
//0
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Wrong Answer
time: 1ms
memory: 3608kb
input:
6 1234 2345 1234 0123 1234 2267 1234 3401 1234 1344 1234 2468
output:
3 3 7 8 2 8
result:
wrong answer 1st numbers differ - expected: '1', found: '3'