比赛 |
20131130 |
评测结果 |
AAAAAAAAAA |
题目名称 |
提高速度 |
最终得分 |
100 |
用户昵称 |
GDFRWMY |
运行时间 |
0.008 s |
代码语言 |
Pascal |
内存使用 |
2.21 MiB |
提交时间 |
2013-11-30 15:43:25 |
显示代码纯文本
var
a,b,c,d,e,f,m,n,fn,mn,ans:longint;
ff,mm,w,u:array[0..100000]of longint;
k:array[0..100000] of real;kk:real;
procedure sort(l,r: longint);
var
i,j,y: longint;
x:real;
yy:real;
begin
i:=l;
j:=r;
x:=k[(l+r) div 2];
repeat
while k[i]<x do
inc(i);
while x<k[j] do
dec(j);
if not(i>j) then
begin
yy:=k[i];
k[i]:=k[j];
k[j]:=yy;
y:=ff[i];
ff[i]:=ff[j];
ff[j]:=y;
y:=mm[i];
mm[i]:=mm[j];
mm[j]:=y;
y:=w[i];
w[i]:=w[j];
w[j]:=y;
inc(i);
j:=j-1;
end;
until i>j;
if l<j then
sort(l,j);
if i<r then
sort(i,r);
end;
begin
assign(input,'sboost.in');
assign(output,'sboost.out');
reset(input); rewrite(output);
read(f,m,n);
for a:=1 to n do
begin
w[a]:=a;
readln(ff[a],mm[a]);
k[a]:=ff[a]/mm[a];
end;
sort(1,n);
kk:=f/m;
fn:=f;
mn:=m;
for a:=n downto 1 do
if (fn+ff[a])/(mn+mm[a])>kk then
begin
u[w[a]]:=1;
fn:=fn+ff[a];
mn:=mm[a]+mn;
kk:=fn/mn; ans:=1;
end
else break;
if ans=0 then writeln('NONE')
else
for a:=1 to n do
if u[a]=1 then
writeln(a);
close(input);
close(output);
end.