usaco 1.5 checker 2008.5.9
2016-02-05 11:06
465 查看
usaco 1.5 checker 2008.5.9
{
ID:
PROG: checker
LANG: PASCAL
}
var t,up:longint; n:integer;
r:array[1..13]of integer;
procedure pp(a,b,c,d:longint);
var pos,p:longint;
procedure print;
var i:longint;
begin
for i:=1 to n-1 do write(r[i],' ');
writeln(r
);
end;
begin
if a<up then begin
pos:=up and not(a or b or c);
while pos<>0 do begin
p:=pos and -pos;
pos:=pos-p;
if t<=3 then
r[d]:=round(ln(p)/ln(2))+1;
pp(a+p,(b+p)shr 1,(c+p)shl 1,d+1);
end;
end else begin inc(t);
if t<=3 then
print;end;
end;
begin
assign(input,'checker.in');reset(input);
assign(output,'checker.out');rewrite(output);
readln(n);
t:=0;
up:=(1 shl n)-1;
pp(0,0,0,1);
writeln(t);
close(input);close(output);
end.
{
ID:
PROG: checker
LANG: PASCAL
}
var t,up:longint; n:integer;
r:array[1..13]of integer;
procedure pp(a,b,c,d:longint);
var pos,p:longint;
procedure print;
var i:longint;
begin
for i:=1 to n-1 do write(r[i],' ');
writeln(r
);
end;
begin
if a<up then begin
pos:=up and not(a or b or c);
while pos<>0 do begin
p:=pos and -pos;
pos:=pos-p;
if t<=3 then
r[d]:=round(ln(p)/ln(2))+1;
pp(a+p,(b+p)shr 1,(c+p)shl 1,d+1);
end;
end else begin inc(t);
if t<=3 then
print;end;
end;
begin
assign(input,'checker.in');reset(input);
assign(output,'checker.out');rewrite(output);
readln(n);
t:=0;
up:=(1 shl n)-1;
pp(0,0,0,1);
writeln(t);
close(input);close(output);
end.
相关文章推荐
- 建索引时优化的观察和思考
- Python调用(运行)外部程序
- Joint Cascade Face Detection and Alignment(JDA)文档
- 从源码角度带你分析 Android View 事件分发 dispatchTouchEvent,onTouch,onTouchEvent,onClick逻辑顺序过程(一)
- usaco 1.5 numtri 2008.5.6
- HDU 1541 Stars 树状数组
- Myeclipse中误报错误解决办法
- 在你步入职业软件开发生涯那天起就该知道的五件事
- 迷宫问题c程序
- Android CTS(兼容性测试)整个流程
- usaco 1.4 packrec 2008.5.6
- Tomcat启动时报 java.lang.OutOfMemoryError: Java heap space
- 计算两组标签/关键词 相似度算法
- String 基本使用方法, 以及要注意的事项
- Myeclipse中 Exploded location overlaps an existing deployment解决办法
- SVN提交项目时版本冲突解决方案
- 跨域调用WebApi
- 新浪微博分享
- Jsp过滤器Filter配置过滤类型汇总
- 如何使用doppia进行人脸检测