记录编号 187752 评测结果 AAWTTTTTTT
题目名称 [USACO Mar]提高速度 最终得分 20
用户昵称 GravatarHoliye 是否通过 未通过
代码语言 C++ 运行时间 7.517 s
提交时间 2015-09-20 18:07:51 内存使用 0.33 MiB
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
int z,l,n,c=1;
double d,o;
const int maxn=1000+2;
struct node
{
	int m,f;
};
node b[maxn];
char a[maxn],e[maxn];
int j=1,s;
char ss();
double max1;
using namespace std;
int main()
{
	//freopen("test.in","r",stdin);
	//freopen("test.out","w",stdout);
	freopen("sboost.in","r",stdin);
	freopen("sboost.out","w",stdout);
	
	cin>>l>>z>>n;
	d=l*1.0/z;
	max1=d; o=d;
	for(int i=1;i<=n;i++)
	{
		j*=2;
	}
	for(int i=1;i<=n;i++)
	{
		a[i]='0';
	}
	for(int i=1;i<=n;i++)
	{
		cin>>b[i].f>>b[i].m;
	}
	ss();
	if(max1<=o)
	{
		cout<<"NONE"<<endl;
	}
	else
	{
		for(int i=1;i<=n;i++)
		{
			if(e[i]=='1')
				cout<<i<<endl;
		}
	}
	
	return 0;
}
char ss()
{
	for(int j=c;j<=n;j++)
	{
		a[j]='1';
		int h1=z,h2=l;
		for(int i=1;i<=n;i++)
		{
			if(a[i]=='1')
			{
				h1+=b[i].m;
				h2+=b[i].f;
				d=h2*1.0/h1;
				if(d>max1)
				{
					max1=d;
					for(int k=1;k<=n;k++)
					{
						e[k]=a[k];
					}
				}
			}
		}
		c++;
		ss();
		c--;
		a[j]='0';
	}
}