CF1792BUKE求救!
  • 板块学术版
  • 楼主hh_h_hh
  • 当前回复6
  • 已保存回复6
  • 发布时间2023/2/19 14:31
  • 上次更新2023/10/24 00:20:57
查看原帖
CF1792BUKE求救!
561562
hh_h_hh楼主2023/2/19 14:31
#include <bits/stdc++.h>
using namespace std;

int x=0,y=0;
int ans;

int me(int a,int b,int c,int d)
{
	ans=0;
		x=a;
		y=a;
		ans+=a;
		if(a==0)
		{
			return 1;
		}
		while(1)
		{
			int q=min(y,b);
			x+=q;
			ans+=q;
			b-=q;
			y-=q;
			if(ans>=0&&b==0&&c==0)
			{
				ans+=min(d,min(x,y)+1);
				return ans;
			}
			else if(ans>=0&&b==0&&x==0)
			{
				ans++;
				return ans;
			}
			else if(ans>=0&&c==0&&y==0)
			{
				ans++;
				return ans;
			}
			
			else if(ans>=0&&x==0&&y==0)
			{ans++;
				return ans;
			}
			q=min(x,c);
			y+=q;
			ans+=q;
			c-=q;
			x-=q;
			if(ans>=0&&b==0&&c==0)
			{
				ans+=min(d,min(x,y)+1);
				return ans;
			
			}
			else if(ans>=0&&b==0&&x==0)
			{ans++;
				return ans;
			}
			else if(ans>=0&&c==0&&y==0)
			{
			ans++;
			return ans;
			}
			
			else if(ans>=0&&x==0&&y==0)
			{
				ans++;
				return ans;
			}
		}
}

int main()
{
	int  T;
	cin>>T;
	int a1,b1,c1,d1;
	while(T--) 
	{
	    cin>>a1>>b1>>c1>>d1;
	    cout<<me(a1,b1,c1,d1)<<endl;	
	}
	return 0;
}
2023/2/19 14:31
加载中...