记录编号 604953 评测结果 AAAAAAAAAA
题目名称 3659.[SYOI 2022]倒水 最终得分 100
用户昵称 Gravatarhsl_beat 是否通过 通过
代码语言 C++ 运行时间 0.031 s
提交时间 2025-08-12 17:49:30 内存使用 3.72 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
#define int long long
bool vis[101][101][101];
signed main()
{
	int a, b, c, x;
	cin >> a >> b >> c >> x;
	queue<vector<int>> que;
	que.push({a, 0, 0, 0});
	while (que.size()) {
		int ta = que.front()[0];
		int tb = que.front()[1];
		int tc = que.front()[2];
		int step = que.front()[3];
		if (vis[ta][tb][tc]) {
			que.pop();
			continue;
		}
		vis[ta][tb][tc] = 1;
		if (ta == x || tb == x || tc == x) {
			cout << step;
			return 0;
		}
		if ((double)clock() / CLOCKS_PER_SEC >= 1.00) {
			cout << "false";
			return 0;
		}
		if (ta) {
			int tp = min(ta, b - tb);
			que.push({ta - tp, tb + tp, tc, step + 1});
			tp = min(ta, c - tc);
			que.push({ta - tp, tb, tc + tp, step + 1});
		}
		if (tb) {
			int tp = min(tb, a - ta);
			que.push({ta + tp, tb - tp, tc, step + 1});
			tp = min(tb, c - tc);
			que.push({ta, tb - tp, tc + tp, step + 1});
		}
		if (tc) {
			int tp = min(tc, a - ta);
			que.push({ta + tp, tb, tc - tp, step + 1});
			tp = min(tc, b - tb);
			que.push({ta, tb + tp, tc - tp, step + 1});
		}
	}
	cout << "false";
	return 0;
}