比赛 20131130 评测结果 AAAAAAAAAA
题目名称 提高速度 最终得分 100
用户昵称 cstdio 运行时间 0.009 s
代码语言 C++ 内存使用 0.51 MiB
提交时间 2013-11-30 16:07:00
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<map>
#include<cstring>
#include<vector>
#include<cmath>
#include<algorithm>
#include<iomanip>
#include<deque>
using namespace std;
const int SIZEN=10001;
class ACCE{
public:
	int pos;
	double m,f;
}ac[SIZEN];
double M,F;
bool operator < (ACCE a,ACCE b){
	return a.f*b.m<b.f*a.m;
}
int N;
void read(void){
	scanf("%lf%lf%d",&F,&M,&N);
	int i;
	for(i=1;i<=N;i++){
		scanf("%lf%lf",&ac[i].f,&ac[i].m);
		ac[i].pos=i;
	}
}
bool flag[SIZEN]={0};
void work(void){
	int i;
	double besta,nowa;
	besta=F/M;
	for(i=N;i>=1;i--){
		nowa=(F+ac[i].f)/(M+ac[i].m);
		if(nowa<=besta) break;
		besta=nowa;
		F+=ac[i].f,M+=ac[i].m;
	}
	int sum=N-i;
	for(i++;i<=N;i++) flag[ac[i].pos]=true;
	if(sum==0) printf("NONE\n");
	else{
		for(i=1;i<=N;i++){
			if(flag[i]) printf("%d\n",i);
		}
	}
}
int main(){
	freopen("sboost.in","r",stdin);
	freopen("sboost.out","w",stdout);
	read();
	sort(ac+1,ac+1+N);
	work();
	return 0;
}