Tyvj P1400 盗窃
背景 Background
怪盗基德 VS OIBH系列
第一话
描述 Description
怪盗基德煞费苦心历尽九九八十一难终于来到了存放Paris Sunshine的OIBH总部大楼顶上。基德知道这幢大楼的层数以及哪几层有呆头呆脑的警察。他还知道Paris Sunshine就藏在两层层数与警卫人数成反比的楼层的中间那层。基德想要知道那层楼的层数,警卫人数以及到那层所要经过的警卫人数。基德行踪不定,可能从楼底往楼上走,也可能从楼顶往楼下走。
输入格式 Input Format
输入文件共n+1行。第一行为2个数a,b。分别表示大楼的层数以及怪盗基德会从楼下还是楼上出发。b=1则表示从楼顶出发,b=0表示从楼底出发。第2行到第n+1行每行一个整数。表示该层警卫人数。
输出格式 Output Format
输出文件共1行,为两个用空格隔开的整数,分别是Paris Sunshine的藏匿地点以及基德盗走Paris Sunshine所要经过楼层的警卫总数。
样例输入 Sample Input
5 1
3
6
1
4
5
样例输出 Sample Output
2 16
时间限制 Time Limitation
基德可不能等到警卫来抓他,所以你必须在1S内找出正确答案。
注释 Hint
数据规模:楼层数<100,每层警卫数<maxinteger
输入数据保证只有唯一一层楼符合条件。
来源 Source
From 玛维-影之歌
简单题,“Paris Sunshine就藏在两层层数与警卫人数成反比的楼层的中间那层”这句的意思就是………………a[i]*i=a[j]*j…..
program p1400; var lc:array[1..200]of integer; a,b,i,j,k:integer; m,s:longint; begin read (a,b); for i := 1 to a do read (lc[i]); for i := 1 to a do for j := i+1 to a do if lc[i]*i=lc[j]*j then begin m:=(i+j)div 2; s:=0; if b=1 then for k := a downto m do s:=lc[k]+s else for k := 1 to m do s:=lc[k]+s; write (m,' ',s); end; end.