讨论 / 202?
wuzw 2011-12-16 02:44:00
点我顶贴 收藏 删除
var tu,a,b,x,y,c,t:longint;s:array[1..3000]of longint;

begin

readln(x,y);

if x<y then begin

tu:=x;x:=y;y:=tu;end;

repeat

inc(t);

if s[t]=1 then else

begin

inc(c);inc(a,t);b:=a+c;

s[a]:=1;s[b]:=1;

end;

until (a=x)or(b=x);

if (a=y)and(b=x)then writeln('N')

else writeln('Y');end.

#1 球威@2011-12-16 02:43:00
回复 删除
x=0;

x=1,y=2;

x=2,y=n....

思路是对的,但有些特殊情况没考虑到.

#2 球威@2011-12-16 02:44:00
回复 删除
program main;

var

m,n,i,j:longint;

a:array[0..1000000]of boolean;

pr1,pr2,now1,now2:longint;

procedure swap(var m,n:longint);

var s:longint;

begin

s:=m;m:=n;n:=s;

end;

procedure end1;

begin

write('N');

halt;

end;

procedure end2;

begin

write('Y');

halt;

end;

begin

read(m,n);

if m>n then swap(m,n);

if m=0 then end2;

if(m=n)then end2;{zhu yi}

if m=1 then if n=2 then end1

else end2;

if m=2 then end1;

if m=n then end2;

fillchar(a,sizeof(a),true);

a[0]:=false;a[1]:=false;a[2]:=false;

i:=1;

pr1:=1;pr2:=2;

repeat

while a[i]=false do inc(i);

now1:=i;

now2:=now1-pr1+1+pr2;

a[now1]:=false;a[now2]:=false;

pr1:=now1;pr2:=now2;

until now1=m;

if now2=n then end1;

end2;

end.

我的程序

查看更多回复
提交回复