4. 队长位置

program rest;
var
     a : array[1 .. 1000] of Boolean;
     n, m, i, ltor, rtol, number : longint;
begin
     readln(n, m);
     for i := 1 to n do
         a[i] := true;
     ltor := m;
     rtol := n-m+1;
     number := n;
     while rtol > ltor do
     begin
          a[ltor] := false;
          ltor := ltor+1;
          a[rtol] := false;
          rtol := rtol-1;
          number := number-2;
     end;
     if ltor = rtol then
     begin
          a[ltor] := false;
          ltor := n-m+2;
          rtol := m-1;
          while number > m-1 do
          begin
               a[rtol] := false;
               rtol := rtol-1;
               ltor := ltor+1;
               number := number -1;
               if number <= m-1 then break;
               a[ltor] := false;
               ltor := ltor+1;
               rtol := rtol-1;
               number := number -1;
          end;
     end
     else
     begin
          ltor := n-m+2;
          rtol := m-1;
          while number > m-1 do
          begin
               a[ltor] := false;
               ltor := ltor+1;
               rtol := rtol-1;
               number := number -1;
               if number <= m-1 then break;
               a[rtol] := false;
               rtol := rtol-1;
               ltor := ltor+1;
               number := number -1;
          end;
     end;
     for i := n downto 1 do
         if a[i] then
         begin
            writeln(i);
            break;
         end;
     readln;
end.
posted @ 2010-01-30 20:46  SmartIOI  阅读(167)  评论(0)    收藏  举报
本站采用CC授权如需转载、引用文章,请务必附上作者及来源处。 Creative Commons License