ABC343E 求 hack
  • 板块灌水区
  • 楼主_Weslie_
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/3/2 22:27
  • 上次更新2024/3/3 10:06:27
查看原帖
ABC343E 求 hack
511959
_Weslie_楼主2024/3/2 22:27

Code:

#include<iostream>
#include<cstdio>
using namespace std;
int a,b,c;
int main() {
	scanf("%d%d%d",&a,&b,&c);
	if(a+2*b+3*c!=1029) {
		printf("No");
		return 0;
	}
	printf("Yes\n");
	/*
	3 4 7 -> 30 33 34
	1 5 3 -> 9  31 30
	3 6 1 -> 8  33 9
	[3,30]U[1,9]U[3,8]->[3,8]->5
	[4,33]U[5,31]U[6,33]->[6,33]->5
	[7,34]U[3,30]U[1,9]->[7,9]->1
	5*5*1=50
	*/
	int x[4],y[4],z[4],rx;
	for(x[1]=0; x[1]<=7; x[1]++) {
		for(y[1]=0; y[1]<=7; y[1]++) {
			for(z[1]=0; z[1]<=7; z[1]++) {
				for(x[2]=0; x[2]<=7; x[2]++) {
					for(y[2]=0; y[2]<=7; y[2]++) {
						for(z[2]=0; z[2]<=7; z[2]++) {
							for(x[3]=0; x[3]<=7; x[3]++) {
								for(y[3]=0; y[3]<=7; y[3]++) {
									for(z[3]=0; z[3]<=7; z[3]++) {
										int maxx=min(x[3],min(x[1],x[2]))+7,
											maxy=min(y[2],min(y[3],y[1]))+7,
											maxz=min(z[3],min(z[2],z[1]))+7,
											minx=max(x[3],max(x[1],x[2])),
											miny=max(y[3],max(y[1],y[2])),
											minz=max(z[3],max(z[1],z[2]));
										int three=(maxx-minx)*(maxy-miny)*(maxz-minz);
										if(three!=c)break;
										int ab= (min(x[2],x[1])+7-max(x[2],x[1]))*
												(min(y[2],y[1])+7-max(y[2],y[1]))*
												(min(z[2],z[1])+7-max(z[2],z[1])),
											bc= (min(x[3],x[2])+7-max(x[3],x[2]))*
												(min(y[3],y[2])+7-max(y[3],y[2]))*
												(min(z[3],z[2])+7-max(z[3],z[2])),
											ac= (min(x[3],x[1])+7-max(x[3],x[1]))*
												(min(y[3],y[1])+7-max(y[3],y[1]))*
												(min(z[3],z[1])+7-max(z[3],z[1]));
										int two=bc+ac+ab-3*three;
										if(two!=b)break;
										else {
									//	if(x[1]==0&&x[2]==0&&y[3]==0&&z[3]==0&&z[1]==0&&z[2]==0&&y[2]==0&&x[3]==6&&y[1]==6){
											printf("%d %d %d %d %d %d %d %d %d",x[1],y[1],z[1],x[2],y[2],z[2],x[3],y[3],z[3]);
									//	printf("%d %d",three,two);
											return 0;
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
	return 0;
}

听说 898^9 是不完全对的,所以求一个 hack。

思路:枚举坐标,求题解

2024/3/2 22:27
加载中...