求助CF B
  • 板块学术版
  • 楼主Esawkm
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/1/25 10:05
  • 上次更新2023/10/24 03:09:01
查看原帖
求助CF B
642481
Esawkm楼主2023/1/25 10:05

rt,wtcl

#include<bits/stdc++.h>
using namespace std;
long long t,a,b,c,d,qx1,qx2,ans1,ll,ans2,qq,q,w,e,r,ans4,nn,mm;
int main(){
	scanf("%lld",&t);
	while(t--){
		qx1=0,qx2=0,ans1=0,ans2=0;
		scanf("%lld%lld%lld%lld",&a,&b,&c,&d);
		if(a==0){
			printf("1\n");
			continue;
		}
		q=a,w=b,e=c,r=d;
		ans1+=a,qx1=a,qx2=a;
		long long qwq1=min(b,c);
		ans1+=qwq1*2,b-=qwq1,c-=qwq1,nn=ans1;
		ans1+=min(b,qx1),qx1-=(ans1-nn),qx2+=(ans1-nn),ll=ans1;
		ans1+=min(c,qx2),qx2-=(ans1-ll),qx1+=(ans1-ll);
		ans1+=max(qx1,qx2);
		++ans1;
		a=q,b=w,c=e,d=r;
		ans2+=a,qx1=a,qx2=a;
		long long qwq2=min(b,c);
		ans2+=qwq2*2,b-=qwq2,c-=qwq2,mm=ans1;
		ans2+=min(c,qx2),qx2-=(ans2-mm),qx1+=(ans2-mm),ll=ans1;
		ans2+=min(b,qx1),qx1-=(ans2-ll),qx2+=(ans2-ll);
		ans2+=max(qx1,qx2);
		++ans2;
		ans4=q*2+qwq2*2+1;
		long long ans3=max(ans1,max(ans2,ans4));
		if(ans3>q+w+e+r)
		printf("%lld\n",a+b+c+d);
		else
		printf("%lld\n",ans3);
	}
	return 0;
}
2023/1/25 10:05
加载中...