比赛 不平凡的世界 评测结果 EETTTTTTTE
题目名称 不平凡的boss 最终得分 0
用户昵称 sro dydxh orz 运行时间 8.993 s
代码语言 C++ 内存使用 1.94 MiB
提交时间 2015-11-05 11:52:51
显示代码纯文本
#include<iostream>
#include<cmath>
#include<cstring>
#include<string>
#include<cstdio>
#include<algorithm>
#include<cstdlib>
using namespace std;
int n,a[100100],b[100100],c[100100],ans=1008610010,q[100100],len;
bool die[100100];
void dfs(int ko,int x,int y,int z,int hf){
	if(ko==n)	{if(hf<ans)	ans=hf;return;}
	for(int i=1;i<=n;i++){
		if(die[i])	continue;
		
		int num=0,k=i;
		while(a[k]<=x+1&&k<=n)	{die[k]=1;num++;k++;q[++len]=k;}
		dfs(ko+num,x+1,y,z,1+hf);
		while(len>=0)	die[len--]=0;
		
		num=0;k=i;
		while(b[k]<=y+1&&k<=n)	{die[k]=1;num++;k++;q[++len]=k;}
		dfs(ko+num,x,y+1,z,1+hf);
		while(len>=0)	die[len--]=0;

		num=0;k=i;
		while(c[k]<=z+1&&k<=n)	{die[k]=1;num++;k++;q[++len]=k;}
		dfs(ko+num,x,y,z+1,1+hf);
		while(len>=0)	die[len--]=0;

	}
}
int main(){
	freopen("playwithboss.in","r",stdin);
 	freopen("playwithboss.out","w",stdout);
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%d%d%d",&a[i],&b[i],&c[i]);
	}
	dfs(0,0,0,0,0);
	cout<<ans<<endl;
	return 0;
}