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