Skip to content

Instantly share code, notes, and snippets.

@zhrkvl
Created December 22, 2016 09:17
Show Gist options
  • Save zhrkvl/48e30ebbfba271397369a4a20360cf84 to your computer and use it in GitHub Desktop.
Save zhrkvl/48e30ebbfba271397369a4a20360cf84 to your computer and use it in GitHub Desktop.
var a,r:array of array of array of longint;k,r1,r2:array [1..50000] of longint;
p:array [1..5000] of boolean;
n,m,i,j,x,y,s,f,k1:longint;
procedure dfs(v:longint);
begin
p[v]:=false;
for j:=1 to k[v] do
if (p[j]=true) and (r[v,j]=0) then
begin
dfs(a[v,j]);
k1:=k1+1;
r[v,j]:=k1;
r[j,v]:=k1;
end;
end;
begin
assign(input,'input.txt');reset(input);
assign(output,'output.txt');rewrite(output);
readln(n,m);
setlength(a,n+2);
for i:=1 to m do
begin
readln(x,y);
r1[i]:=x;r2[i]:=y;
k[x]:=k[x]+1;
k[y]:=k[y]+1;
setlength(a[y],k[y] + 1);
setlength(a[x],k[x] + 1);
setlength(a[x, k[x]], 2);
setlength(a[y, k[y]], 2);
a[x,k[x]][0]:=y;
a[y,k[y]][0]:=x;
a[x,k[x]][1]:=i;
a[y,k[y]][1]:=i;
end;
exit(0);
f:=1;
for i:=1 to n do
if k[i]=1 then begin s:=s+1;f:=i;end;
if s>1 then writeln('IMPOSSIBLE') else
begin
for i:=1 to n do
p[i]:=true;
dfs(f);
for i:=1 to m do
writeln(r[r1[i],r2[i]]);
end;
end.
var a,r:array of array of array of longint;k,r1,r2:array [1..50000] of longint;
p:array [1..5000] of boolean;
n,m,i,j,x,y,s,f,k1:longint;
procedure dfs(v:longint);
begin
p[v]:=false;
for j:=1 to k[v] do
if (p[j]=true) and (r[v,j]=0) then
begin
dfs(a[v,j]);
k1:=k1+1;
r[v,j]:=k1;
r[j,v]:=k1;
end;
end;
begin
assign(input,'input.txt');reset(input);
assign(output,'output.txt');rewrite(output);
readln(n,m);
setlength(a,n+2);
for i:=1 to m do
begin
readln(x,y);
r1[i]:=x;r2[i]:=y;
k[x]:=k[x]+1;
k[y]:=k[y]+1;
setlength(a[y],k[y] + 1);
setlength(a[x],k[x] + 1);
setlength(a[x, k[x]], 2);
setlength(a[y, k[y]], 2);
a[x,k[x]][0]:=y;
a[y,k[y]][0]:=x;
a[x,k[x]][1]:=i;
a[y,k[y]][1]:=i;
end;
exit(0);
f:=1;
for i:=1 to n do
if k[i]=1 then begin s:=s+1;f:=i;end;
if s>1 then writeln('IMPOSSIBLE') else
begin
for i:=1 to n do
p[i]:=true;
dfs(f);
for i:=1 to m do
writeln(r[r1[i],r2[i]]);
end;
end.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment