比赛 |
20120615 |
评测结果 |
WWWWWWAAWA |
题目名称 |
导弹拦截 |
最终得分 |
30 |
用户昵称 |
Czb。 |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2012-06-15 18:27:59 |
显示代码纯文本
#include<stdio.h>
#include<stdlib.h>
struct orz
{
int x,y,z;
}a[1001];
int n,s,ans,f[1001];
bool flag[1001];
inline int max(int a,int b)
{
return a>b?a:b;
}
inline int cmp(const void *a,const void *b)
{
int x,y;
x=(*(orz *)a).x;y=(*(orz *)b).x;
if(x!=y)return x-y;
x=(*(orz *)a).y;y=(*(orz *)b).y;
if(x!=y)return x-y;
x=(*(orz *)a).z;y=(*(orz *)b).z;
if(x!=y)return x-y;
}
int main()
{
freopen("bomba.in","r",stdin);
freopen("bomba.out","w",stdout);
int i,j;
scanf("%d",&n);
a[0].x=a[0].y=a[0].z=-1;
for(i=1;i<=n;i++)
{
scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].z);
}
qsort(a+1,n,sizeof(orz),cmp);
for(i=1;i<=n;i++)
{
for(j=0;j<i;j++)
{
if(a[j].x<a[i].x&&a[j].y<a[i].y&&a[j].z<a[i].z)
{
f[i]=max(f[i],f[j]+1);
}
}
ans=max(ans,f[i]);
}
printf("%d\n",ans);
for(ans=0;s<n;ans++)
{
j=0;
for(i=1;i<=n;i++)
{
if(!flag[i]&&a[i].x>a[j].x&&a[i].y>a[j].y&&a[i].z>a[j].z)
{
s++;
flag[i]=true;
j=i;
}
}
}
printf("%d\n",ans);
return 0;
}