Блог пользователя dhy

Автор dhy, 14 лет назад, По-английски
//Copyright @ 2012, Mike Rush, All rights reserved.
var a:array[1..2,1..100000]of longint;
    q:array[1..300000,1..2]of longint;
    ch:char;
    n,k,i,j,h,ht,t:longint;
begin
 readln(n,k);
 fillchar(a,sizeof(a),0);
 for i:=1 to 2 do
  begin
   for j:=1 to n do
    begin read(ch);if ch='-' then a[i,j]:=1;end;
   readln;
  end;
 h:=1;t:=1;
 q[h,1]:=1;q[h,2]:=1;a[1,1]:=0;
 for i:=1 to n do
  begin
   if h>t then break;
   ht:=t;
   for j:=h to t do
    begin
     if q[j,2]+k>n then begin writeln('YES');halt;end;
     if a[q[j,1],q[j,2]+1]=1 then
      begin
       inc(t);
       q[t,1]:=q[j,1];
       q[t,2]:=q[j,2]+1;
       a[q[j,1],q[t,2]]:=0;
      end;
     if (a[q[j,1],q[j,2]-1]=1) and (q[j,2]-1>i) then
      begin
       inc(t);
       q[t,1]:=q[j,1];
       q[t,2]:=q[j,2]-1;
       a[q[j,1],q[t,2]]:=0;
      end;
     if a[3-q[j,1],q[j,2]+k]=1 then
      begin
       inc(t);
       q[t,1]:=3-q[j,1];
       q[t,2]:=q[j,2]+k;
       a[q[t,1],q[t,2]]:=0;
      end;
    end;
   h:=ht+1;
  end;
 writeln('NO');
end.

Полный текст и комментарии »

  • Проголосовать: нравится
  • -16
  • Проголосовать: не нравится

Автор dhy, 14 лет назад, По-английски
//Copyright @ 2012, Mike Rush, All rights reserved.
var k,b,n,tot,t,x:qword;i:longint;
begin
 readln(k,b,n,t);
 x:=1;
 while true do
  begin
   x:=k*x+b;inc(tot);
   if x>=t then break;
  end;
 if x>t then dec(tot);
 if tot>n then tot:=n;
 writeln(n-tot);
end.

Полный текст и комментарии »

  • Проголосовать: нравится
  • -18
  • Проголосовать: не нравится

Автор dhy, 14 лет назад, По-английски
//Copyright @ 2012, Mike Rush, All rights reserved.
var f:array[0..44] of longint;
    n,i,j,k:longint;
begin
 readln(n);
 f[0]:=0;f[1]:=1;
 for i:=2 to 44 do f[i]:=f[i-1]+f[i-2];
 for i:=0 to 44 do
  for j:=0 to 44 do
   for k:=0 to 44 do
    if f[i]+f[j]+f[k]=n then
     begin writeln(f[i],' ',f[j],' ',f[k]);halt;end;
 writeln('I''m too stupid to solve this problem');
end.

Полный текст и комментарии »

  • Проголосовать: нравится
  • -17
  • Проголосовать: не нравится

Автор dhy, 14 лет назад, По-английски
//Copyright @ 2012, Mike Rush, All rights reserved.
uses math;
var k,b,ta,tb,tc,td,xp,yp,vp,x,y,v,r,dt,left,right,mid,rp,nt,txp,typ,t1x,t1y,t2x,t2y,tt,ttt,tt1,tt2,tttt:extended;
function dis(x1,y1,x2,y2:extended):extended;
begin exit(sqrt(sqr(x1-x2)+sqr(y1-y2)));end;
function check(time:extended):boolean;
begin
 rp:=dis(xp,yp,0,0);
 nt:=vp*time/rp;
 txp:=xp*cos(nt)-yp*sin(nt);
 typ:=yp*cos(nt)+xp*sin(nt);
 t1x:=-x;t1y:=-y;
 t2x:=t1x+txp;t2y:=t1y+typ;
 nt:=(t1x*t2y-t2x*t1y)/(dis(x,y,0,0)*dis(x,y,txp,typ));
 dt:=(t1x*t2x+t1y*t2y)/(dis(x,y,0,0)*dis(x,y,txp,typ));
 if dt<=0 then
  begin
   ttt:=dis(x,y,txp,typ);
   ttt:=ttt/v;
   if ttt<=mid then exit(true);
   exit(false);
  end;
 t1x:=-txp;t1y:=-typ;
 t2x:=t1x+x;t2y:=t1y+y;
 dt:=(t1x*t2x+t1y*t2y)/(dis(txp,typ,0,0)*dis(x,y,txp,typ));
 if dt<=0 then
  begin
   ttt:=dis(x,y,txp,typ);
   ttt:=ttt/v;
   if ttt<mid then exit(true);
   exit(false);
  end;
 tt:=dis(x,y,0,0)*nt;
 k:=(y-typ)/(x-txp);
 b:=y-k*x;
 ta:=k;tb:=-1;tc:=b;
 td:=abs(tc)/sqrt(ta*ta+tb*tb);
 if ((tt<0) and (td>=r)) or (tt>=r) then
  begin
   ttt:=dis(x,y,txp,typ);
   ttt:=ttt/v;
   if ttt<=mid then exit(true);
   exit(false);
  end;
 tt:=x*txp+y*typ;
 tt:=arccos(tt/(dis(x,y,0,0)*dis(txp,typ,0,0)));
 tt1:=arccos(r/dis(txp,typ,0,0));
 tt2:=arccos(r/dis(x,y,0,0));
 ttt:=tt-tt1-tt2;
 tttt:=ttt*r;
 tttt:=tttt+sqrt(sqr(dis(txp,typ,0,0))-sqr(r))+sqrt(sqr(dis(x,y,0,0))-sqr(r));
 tttt:=tttt/v;
 if tttt<=mid then exit(true);
 exit(false);
end;
begin
 readln(xp,yp,vp);
 readln(x,y,v,r);
 if (xp=x) and (yp=y) then
  begin writeln(0.0:0:9);halt;end;
 left:=0;right:=1E5;
 while abs(left-right)>1E-10 do
  begin
   mid:=(left+right)/2;
   if check(mid) then right:=mid-(1E-10)
                 else left:=mid+(1E-10);
  end;
 writeln(left:0:9);
end.

Полный текст и комментарии »

  • Проголосовать: нравится
  • -20
  • Проголосовать: не нравится