求助(玄关)
查看原帖
求助(玄关)
1287433
ycyxh1楼主2024/10/24 19:48
#include<bits/stdc++.h>
#define int long long
#define md 2148473648
using namespace std;
inline char fgc(){
//    static char buf[1<<17],*p=buf,*q=buf;
//    return p==q&&(q=buf+fread(p=buf,1,1<<17,stdin),p==q)
//    ?EOF:*p++;
return getchar();
}
inline int rint(){
    int x=0,s=fgc(),f=1;
    for (;s<'0'||'9'<s;s=fgc())f=s=='-'?-f:f;
    for (;'0'<=s&&s<='9';s=fgc())x=x*10+(s^'0');
    return x*f;
}
inline void write(__int128 x)
{
    if(x<0){
        putchar('-'),x=-x;
	}
    if(x>9){
        write(x/10);
	}
    putchar(x%10+'0');
    return;
}
__int128 ans[9];
signed main(){
	int t=rint();
	while(t){
		--t;
		long long n=2,m=0;
		int a=rint(),b=rint(),c=rint(),d=rint();
		int sum=(a<2)+(b<2)+(c<2)+(d<2);
		for(int i=0;i<=8;i++){
			ans[i]=0;
		}
//		cout<<sum<<'\n';
		if(a<=0||b<=0||c<=0||d<=0){
		}
		else if(sum==0){
			ans[4]=min(a,n)*min(b,n)*min(c,n)*min(d,n);
			ans[3]=min(a,n)*min(b,n)*min(c,n)*max(m,(d-n))+min(d,n)*min(b,n)*min(c,n)*max(m,(a-n))+min(a,n)*min(d,n)*min(c,n)*(b-n)+min(a,n)*min(b,n)*min(d,n)*max(m,(c-n));
			ans[2]=min(a,n)*min(b,n)*max(m,(c-n))*max(m,(d-n))+min(a,n)*min(c,n)*max(m,(b-n))*max(m,(d-n))+min(a,n)*min(d,n)*max(m,(b-n))*max(m,(c-n))+min(b,n)*min(c,n)*max(m,(a-n))*max(m,(d-n))+min(b,n)*min(d,n)*max(m,(a-n))*max(m,(c-n))+min(c,n)*min(d,n)*max(m,(a-n))*max(m,(b-n));
			ans[1]=min(a,n)*max(m,(b-n))*max(m,(c-n))*max(m,(d-n))+min(b,n)*(a-n)*(c-n)*(d-n)+min(c,n)*(a-n)*(b-n)*(d-n)+min(d,n)*(a-n)*(b-n)*(c-n);
			ans[0]=max(m,(a-n))*max(m,(b-n))*max(m,(c-n))*max(m,(d-n));
		}
		else if(sum==1){
			ans[2]=max(max(a-2,m)*max(b-2,m)*(max(c-2,m)),max(max(a-2,m)*max(b-2,m)*max(d-2,m),max(max(a-2,m)*max(c-2,m)*max(d-2,m),max(b-2,m)*max(c-2,m)*max(d-2,m))));
			ans[3]=2*max(max(a-2,m)*max(b-2,m),max(max(a-2,m)*max(c-2,m),max(max(a-2,m)*max(d-2,m),max(max(b-2,m)*max(c-2,m),max(max(d-2,m)*max(b-2,m),max(c-2,m)*max(d-2,m))))));
			ans[4]=4*(max(a-2,m)+max(b-2,m)+max(c-2,m)+max(d-2,m));
			ans[5]=8;
		}
		else if(sum==2){
			ans[6]=4;
			ans[4]=max(max(a-2,m)*max(b-2,m),max(max(a-2,m)*max(c-2,m),max(max(a-2,m)*max(d-2,m),max(max(b-2,m)*max(c-2,m),max(max(d-2,m)*max(b-2,m),max(c-2,m)*max(d-2,m))))));
			ans[5]=2*max(max(a-2,m)+max(b-2,m),max(max(a-2,m)+max(c-2,m),max(max(a-2,m)+max(d-2,m),max(max(c-2,m)+max(b-2,m),max(max(d-2,m)+max(b-2,m),max(d-2,m)+max(c-2,m))))));
		}
		else if(sum==3){
			ans[6]=max(a-2,max(b-2,max(c-2,d-2)));
			ans[7]=2;
		}
		else{
			ans[8]=a*b*c*d;
		}
		for(int i=0;i<=8;i++){
			write(max(ans[i]%md,(__int128)0));
			putchar(' ');
		}
		putchar('\n');
	}
	return 0;
}
2024/10/24 19:48
加载中...