记录编号 604790 评测结果 AAAAAAAAAA
题目名称 3659.[SYOI 2022]倒水 最终得分 100
用户昵称 Gravatar梧叶已同秋雨去 是否通过 通过
代码语言 C++ 运行时间 0.078 s
提交时间 2025-08-11 20:03:33 内存使用 3.29 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int a,aa,b,bb,c,cc,x,ans=1e9;
int v[105][105];
void dfs(int t){ 
//	cout<<a<<" "<<b<<" "<<c<<" "<<t<<endl;
	if(v[a][b]==1)return;
	v[a][b]=1;
	if(a==x||b==x||c==x){
		ans=min(ans,t);
		v[a][b]=0;
		return;
	}
	for(int i=1;i<=6;i++){
		if(i==1&&a&&b!=bb){
			int ad=a,bd=b,cd=c; 
			if(a>=(bb-b)){
				a-=(bb-b);b=bb;
			}else{
				b+=a;
				a=0;
			}//cout<<a<<" "<<b<<" "<<c<<" "<<t<<" "<<i<<endl;
			dfs(t+1);
			a=ad;b=bd;c=cd;
		}
		if(i==2&&a&&c!=cc){int ad=a,bd=b,cd=c; 
			if(a>=(cc-c)){
				
				a-=(cc-c);c=cc;
			}else{
				c+=a;
				a=0;
			}//cout<<a<<" "<<b<<" "<<c<<" "<<t<<" "<<i<<endl;
			dfs(t+1);
			a=ad;b=bd;c=cd;
		}
		if(i==3&&b&&a!=aa){int ad=a,bd=b,cd=c; 
			if(b>=(aa-a)){
				
				b-=(aa-a);a=aa;
			}else{
				a+=b;
				b=0;
			}//cout<<a<<" "<<b<<" "<<c<<" "<<t<<" "<<i<<endl;
			dfs(t+1);
			a=ad;b=bd;c=cd;
		}
		if(i==4&&b&&c!=cc){int ad=a,bd=b,cd=c; 
			if(b>=(cc-c)){
				b-=(cc-c);
				c=cc;
			}else{
				c+=b;
				b=0;
			}//cout<<a<<" "<<b<<" "<<c<<" "<<t<<" "<<i<<endl;
			dfs(t+1);
			a=ad;b=bd;c=cd;
		}
		if(i==5&&c&&a!=aa){int ad=a,bd=b,cd=c; 
			if(c>=(aa-a)){
				
				c-=(aa-a);a=aa;
			}else{
				a+=c;
				c=0;
			}//cout<<a<<" "<<b<<" "<<c<<" "<<t<<" "<<i<<endl;
			dfs(t+1);
			a=ad;b=bd;c=cd;
		}
		if(i==6&&c&&b!=bb){int ad=a,bd=b,cd=c; 
			if(c>=(bb-b)){
				
				c-=(bb-b);b=bb;
			}else{
				b+=c;
				c=0;
			}//cout<<a<<" "<<b<<" "<<c<<" "<<t<<" "<<i<<endl;
			dfs(t+1);
			a=ad;b=bd;c=cd;
		}
	}v[a][b]=0;
}
int main(){
//	freopen("pourwater.in","r",stdin);
//	freopen("pourwater.out","w",stdout);
	cin>>aa>>bb>>cc>>x;
	a=aa;
	dfs(0);
	if(ans==1e9)cout<<"false" ;
	else cout<<ans;
	return 0;
}