Cod sursa(job #115448)
Utilizator | Data | 16 decembrie 2007 12:43:34 | |
---|---|---|---|
Problema | Grozavesti | Scor | 0 |
Compilator | fpc | Status | done |
Runda | preONI 2008, Runda 2, Clasele 5-8 | Marime | 3.05 kb |
var v:array[0..400,0..400]of longint;
q,a,b:array[1..3000]of longint;
n,i,j,k,m,p,o,x,s,l,u,r:longint;
f:text;
begin
assign(f,'grozavesti.in');
reset(f);
read(f,n);
for i:=1 to n do
for j:=1 to n do
read(f,v[i,j]);
close(f);
for p:=1 to n do
begin
s:=v[p,p];
for i:=p to n do
if(v[i,p]<s)and(v[p-1,p-1]<=v[i,p])then begin q[p]:=1;
a[p]:=p;
b[p]:=i;
s:=v[i,p];
end;
for i:=p to n do
if(v[p,i]<s)and(v[p-1,p-1]<=v[p,i])then begin q[p]:=2;
a[p]:=p;
b[p]:=i;
s:=v[p,i];
end;
if q[p]=1 then begin r:=r+1;
for i:=1 to n do
begin
x:=v[a[p],i];
v[a[p],i]:=v[b[p],i];
v[b[p],i]:=x;
end;
end;
if q[p]=2 then begin r:=r+1;
for i:=1 to n do
begin
x:=v[i,a[p]];
v[i,a[p]]:=v[i,b[p]];
v[i,b[p]]:=x;
end;
end;
end;
x:=0;
for p:=1 to n-1 do
if v[p,p]>v[p+1,p+1] then x:=1;
if x=1 then begin for i:=1 to n do
for j:=1 to n do
read(v[i,j]);
for p:=1 to n do
begin
s:=v[p,p];
for i:=p to n do
if(v[i,p]<s)and(v[p-1,p-1]<=v[i,p])then begin q[p]:=1;
a[p]:=p;
b[p]:=i;
s:=v[i,p];
end;
for i:=p to n do
if(v[p,i]<s)and(v[p-1,p-1]<=v[p,i])then begin q[p]:=2;
a[p]:=p;
b[p]:=i;
s:=v[p,i];
end;
if q[p]=1 then begin r:=r+1;
for i:=1 to n do
begin
x:=v[a[p],i];
v[a[p],i]:=v[b[p],i];
v[b[p],i]:=x;
end;
end;
if q[p]=2 then begin r:=r+1;
for i:=1 to n do
begin
x:=v[i,a[p]];
v[i,a[p]]:=v[i,b[p]];
v[i,b[p]]:=x;
end;
end;
end;
end;
assign(f,'grozavesti.out');
rewrite(f);
writeln(f,r);
for p:=1 to n*2 do
if q[p]>0 then begin if q[p]=1 then write(f,'L ')
else write(f,'C ');
writeln(f,a[p],' ',b[p]);
end;
close(f);
end.