LSPITO - Help Conan ! (version 3)

Tác giả: flashmt

Ngôn ngữ: Pascal

var n:int64;
function calc(x,low,m:int64):int64;
begin
     if low>m then calc:=x
     else calc:=x+(m+low)*(m-low+1);
end;

function pr:boolean;
var x,l,r,m,low,y:int64;
begin
     x:=1;
     while x<=n do x:=x shl 2;
     x:=x shr 2;
     if n=x then exit(false);
     l:=trunc(sqrt(x))+1;
     x:=x-l+1;
     r:=(l-1)*2;
     low:=l;
     while l<=r do
     begin
          m:=(l+r) shr 1;
          y:=calc(x,low,m-1);
          if y+m>n then
          begin
               r:=m-1; continue;
          end;
          if y+m*2<n then
          begin
               l:=m+1; continue;
          end;
          if (y+m=n) or (y+m*2=n) then exit(true)
          else exit(false);
     end;
     pr:=false;
end;

begin
     while not eof do
     begin
          read(n);
          if n=0 then exit;
          if pr then writeln('Thu Uyen')
          else writeln('Conan');
     end;
end.

Download