讨论 / 108
银赫 2009-01-13 01:34:00
点我顶贴 收藏 删除
var a:array[1..10000]of integer;

s,min,i,k,n,r:longint;

begin

s:=0;min:=80;

read(n,r);

for i:=1 to n do

begin

readln(a[i]);

s:=s+a[i];

if a[i]<min then min:=a[i];

end;

for i:=n downto 1 do

begin

if (s mod i=0)and(i<min) then begin

k:=s div i;

writeln(k-n,’ ’,i);

if i>r then write(’T’) else write(’F’);

break;

end;

end;

end.

#1 dingming@2008-09-29 00:35:00
回复 删除
本人小号 悬赏求解~!~!
#2 000wang@2008-09-29 08:56:00
回复 删除
var

i,j,k,l,n,m,r,min:longint;

a:array[0..1000] of longint;

p:boolean;

begin

readln(n,r);min:=maxlongint;

for i:=1 to n do

begin

readln(a[i]);

if a[i]<min then

min:=a[i];

end;p:=false;

k:=0;

for i:=1 to n do

k:=k+a[i]-min;

k:=k-n;

repeat

k:=k+n;

if k mod min=0 then

p:=true

else

min:=min-1;

until p or (min=0);

writeln(k div min,’ ’,min);

if min>r then

write(’T’)

else

write(’F’);

end.

#3 B-L-A-C-K@2009-01-13 01:34:00
回复 删除
用不着数组吧?

program p108;

var n,i,r,m,s,min,x:longint;

begin

read(n,r);

min:=maxlongint;

for i:=1 to n do

begin

read(x);

if x<min then min:=x;

s:=s+x

end;

for i:=min downto 1 do

if s mod i=0 then break;

m:=s div i-n;

writeln(m,’ ’,i);

if i>r then writeln(’T’) else writeln(’F’)

end.

我这样就AC

查看更多回复
提交回复