比赛 20131130 评测结果 AAAAAAAAAA
题目名称 提高速度 最终得分 100
用户昵称 Chenyao2333 运行时间 0.008 s
代码语言 C++ 内存使用 0.47 MiB
提交时间 2013-11-30 17:17:11
显示代码纯文本
#include<stdio.h>
#include<algorithm>
using std::sort;

const int MAXN=10000+10;
 
long long F,M;
int N;
struct lj_{
	int s;
	int f,m;
	double zhi;
	void jisuan(){
		zhi=double(f)/double(m); 
	}
}lj[MAXN];

void open(){
	freopen("sboost.in","r",stdin);
	freopen("sboost.out","w",stdout);
}

void read(){
	scanf("%lld %lld %d",&F,&M,&N);
	for(int i=1;i<=N;i++){
		scanf("%d %d",&lj[i].f,&lj[i].m);
		lj[i].jisuan();
		lj[i].s=i;
	}
}

bool cmp(const lj_ &a,const lj_ &b) {
	return a.zhi>b.zhi;
}

int solve(){
	sort(lj+1,lj+1+N,cmp);
	double a=double(F)/double(M);
	for(int i=1;i<=N;i++){
		F+=lj[i].f;
		M+=lj[i].m;
		double t=double(F)/double(M);
		if(t>a)a=t;
		else return i-1;
	}
	return N;
}

int out[MAXN]; 
void print(int ans){
	if(ans==0)printf("NONE\n");
	
	int o_l=0;
	for(int i=1;i<=ans;i++)out[o_l++]=lj[i].s;
	sort(out,out+o_l);
	for(int i=0;i<o_l;i++)printf("%d\n",out[i]);
}
	

int main(){
	open();
	read();
	int ans=solve();
	print(ans);
	return 0;
}