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.

你可能感兴趣的:(400)