比赛 |
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;
}