比赛 |
不平凡的世界 |
评测结果 |
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;
}