宋壬初吧 关注:25贴子:419
  • 1回复贴,共1

USACO_clock

收藏回复

  • 221.194.73.*
{
ID:tsnoi201
PROG:clocks
LANG:PASCAL
}
program clocks;
const 
mov:array[1..9,1..9] of longint=
(
(1,1,0,1,1,0,0,0,0),(1,1,1,0,0,0,0,0,0),(0,1,1,0,1,1,0,0,0),
(1,0,0,1,0,0,1,0,0),(0,1,0,1,1,1,0,1,0),(0,0,1,0,0,1,0,0,1),
(0,0,0,1,1,0,1,1,0),(0,0,0,0,0,0,1,1,1),(0,0,0,0,1,1,0,1,1)
);   
var i,t:longint;
a:array[1..9] of longint;
ans:array[1..30] of longint;
procedure pd;
var g:longint;
begin
for g:=1 to 9 do if a[g]>0 then exit;
for g:=1 to t-1 do write(ans[g],' ');writeln(ans[t]);
close(output);
halt;
end;
procedure dfs(x:longint);
var i,j:longint;
begin
if x>9 then
begin
pd;exit;
end;
dfs(x+1);
for i:=1 to 3 do
begin
for j:=1 to 9 do a[j]:=(a[j]+mov[x,j]) mod 4;
inc(t);ans[t]:=x;
dfs(x+1);
end;
for j:=1 to 9 do a[j]:=(a[j]+mov[x,j]) mod 4;
dec(t,3);
end;
begin
 assign(input,'clocks.in');
 reset(input);
 assign(output,'clocks.out');
 rewrite(output);
  for i:=1 to 9 do 
  begin
  read(a[i]);
  a[i]:=a[i] div 3 mod 4;
  end;
  t:=0;
  dfs(1);
 close(output);
end.


1楼2009-10-16 21:02回复
    经典搜索……当年囧了一个上午,想想那时候真弱


    禁言 |2楼2010-08-06 13:06
    回复