记录编号 338764 评测结果 AAAAAAAAAA
题目名称 [USACO Mar]提高速度 最终得分 100
用户昵称 Gravatarliuliuliu 是否通过 通过
代码语言 C++ 运行时间 0.018 s
提交时间 2016-11-05 15:16:46 内存使用 0.55 MiB
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <climits>
#include <cstdlib>
#include <ctime>
#include <sstream>
#include <queue>
#include <set>
#include <map>
using  namespace std;
 
const int maxn=10000+10;
const int maxm=1000+10;

struct node
{
	int pow,hav;
	double a;
	int num;
};
node table[maxn];
int n,m;
double nowa;
int f;;
int ans[maxn],cnt;

bool comp(node i,node j)
{
	if(i.a>j.a)
		return true;
	else if(i.a==j.a && i.hav<=j.hav)
		return true;
	else if(i.a==j.a && i.hav==j.hav && i.num<j.num)
		return true;	
	return false;	
}
int main()
{
	freopen("sboost.in","r",stdin);
	freopen("sboost.out","w",stdout); 
	cin>>f>>m>>n;
	nowa= (double(f*1.0))/ (m*1.0);
	for(int i=1;i<=n;i++)
	{
		scanf("%d%d",&table[i].pow,&table[i].hav);
		table[i].num=i;
		table[i].a= (double(table[i].pow*1.0)) / (table[i].hav*1.0);
	}
	sort(table+1,table+n+1,comp);
//	for(int i=1;i<=n;i++)
//	{
//		cout<<table[i].num<<":    "<<table[i].pow<<' '<<table[i].hav<<' ';
//		cout<<table[i].a<<endl;
//	}
//	cout<<nowa<<endl;
//	cout<<"******************************"<<endl;
	for(int i=1;i<=n;i++)
	{
		if(table[i].a>nowa)
		{
			ans[++cnt]=table[i].num;
			f+=table[i].pow;m+=table[i].hav;
			nowa= (double(f*1.0))/ (m*1.0);
		}
	}
	sort(ans+1,ans+cnt+1);
	if(cnt==0)
	{
		cout<<"NONE"<<endl;
		return 0;
	}
	for(int i=1;i<=cnt; i++)	
		printf("%d\n",ans[i]);
	return 0;
}