QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#648847#6621. Luggage Lockyeah14WA 0ms3616kbC++172.3kb2024-10-17 20:40:182024-10-17 20:40:22

Judging History

你现在查看的是最新测评结果

  • [2024-10-17 20:40:22]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3616kb
  • [2024-10-17 20:40:18]
  • 提交

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;
		for (int i = 0; i < 4; i++) {
			if (i == 3) {
				if (e != 3)res += abs(d[i]);
				else {
					res += t;
					for (int i = s; i < e; i++) {
						res += abs(d[i]) - t;
					}
					s = e;
					t = 0;
				}
			}
			else if (d[i] * d[i + 1] > 0)
			{
				e = i + 1;
				t = min(t, abs(d[i + 1]));
			}
			else {
				if (e < s) {
					res += abs(d[i]);
					s = i + 1;
					continue;
				}
				res += t;
				for (int i = s; i < e; i++) {
					res += abs(d[i])-t;
				}
				s = e+1;
				t = 0x3f3f;
			}
		}
		/*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

详细

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 3616kb

input:

6
1234 2345
1234 0123
1234 2267
1234 3401
1234 1344
1234 2468

output:

4144959
4144959
4144959
4144959
4144959
4144959

result:

wrong answer 1st numbers differ - expected: '1', found: '4144959'