比赛 |
20150423 |
评测结果 |
AAATTTATTTTTTT |
题目名称 |
守卫标志物 |
最终得分 |
28 |
用户昵称 |
slyrabbit |
运行时间 |
10.010 s |
代码语言 |
C++ |
内存使用 |
0.31 MiB |
提交时间 |
2015-04-23 09:00:25 |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
class cow
{
public:
int h;
int w;
int p;
cow(){
h=0;w=0;p=0;
}
}a[25];
int H,n,h_now=0,p_now=9999999,Max=-1;
bool b[25]={0};
//*********************************不要浮躁***********************************//
void init()
{
cin>>n>>H;
for(int i=1;i<=n;i++)
{
cin>>a[i].h>>a[i].w>>a[i].p;
}
}
void work(int x)
{
if(h_now>=H)
{
Max=max(Max,p_now);
return ;
}
for(int i=1;i<=n;i++)
{
if(!b[i]&&a[i].w<p_now)
{
int temp=p_now;
p_now-=a[i].w;
p_now=min(p_now,a[i].p);
h_now+=a[i].h;
b[i]=1;
work(i);
p_now=temp;
h_now-=a[i].h;
b[i]=0;
}
}
}
int main()
{
freopen("guardc.in","r",stdin);
freopen("guardc.out","w",stdout);
init();
for(int i=1;i<=n;i++)
{
p_now=a[i].p;
h_now=a[i].h;
b[i]=1;
work(i);
b[i]=0;
}
if(Max>0) cout<<Max;
else cout<<"Mark is too tall";
return 0;
}