比赛 20150423 评测结果 C
题目名称 守卫标志物 最终得分 0
用户昵称 Satoshi 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2015-04-23 11:21:35
显示代码纯文本
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
ifstream in("guardc.in");
ofstream out("guardc.out");
int n;
int He=0;
int f[21]={0};
int best=0;
class node
{
public:
	int G;
	int H;
	int F;
}cow[21];
bool com(node a,node b)
{
	//out<<a.F<<' '<<b.F<<endl;
	if(a.F>b.F)return 1;
	if(a.F==b.F)
	{
		if(a.H<b.H)return 1;
		if(a.H==b.H)
		{
			if(a.G>b.G)return 1;
		}
	}
	return 0;
}
void check(int h)
{
	int i,j;
	vector<int> q;
	for(i=1;i<=n;i++)
}
int dfs(int data,int sum,int h)
{
	int i;
	if(h>=He)
	{
		check(h);
		return 0;
	}
	if(sum==n)return 0;
	for(i=1;i<=n;i++)
	{
		f[data]=i;
		sum++;
		dfs(data+1,sum+1,h+cow[data].H);
		f[data]=0;
		sum--;
		dfs(data+1,sum,h);
	}
}
int main()
{
	int i,j;
	in>>n;
	in>>He;
	for(i=1;i<=n;i++)in>>cow[i].G>>cow[i].H>>cow[i].F;
	sort(cow+1,cow+n+1,com);
	for(i=1;i<=n;i++)out<<cow[i].G<<' '<<cow[i].H<<' '<<cow[i].F<<endl;
	dfs(1,0,0);
	return 0;
}