fork download
  1. program subjects;
  2.  
  3. const
  4. MAXN = 100000;
  5. MAXM = 1000;
  6.  
  7. var
  8. M, N, P, i, j, h: LongInt;
  9. K : Array[0..MAXN-1] of LongInt;
  10. S : Array[0..MAXN-1] of Array[0..5] of LongInt;
  11. ans : Array[1..MAXM] of Array[1..2] of LongInt;
  12. coppie : Array[1..MAXM,1..MAXM] of LongInt;
  13.  
  14.  
  15. begin
  16. (*assign(input, 'input.txt'); reset(input);
  17.   assign(output, 'output.txt'); rewrite(output);*)
  18.  
  19. ReadLn(N, M);
  20.  
  21. for i := 0 to N - 1 do
  22. begin
  23. Read(K[i]);
  24. for j := 0 to K[i] - 1 do
  25. Read(S[i][j]);
  26. end;
  27. for i:=1 to M do
  28. for j:=1 to M do coppie[i,j]:=0;
  29. P:=0;
  30. for i:=0 to N-1 do
  31. begin
  32. if K[i]>=1 then
  33. begin
  34. for j:=0 to K[i]-1 do
  35. for h:= j+1 to K[i]-1 do
  36. begin
  37. coppie[S[i][j],S[i][h]]:=coppie[S[i][j],S[i][h]]+1;
  38. coppie[S[i][h],S[i][j]]:=coppie[S[i][h],S[i][j]]+1;
  39. end;
  40. end;
  41. end;
  42.  
  43. for i:=1 to M do
  44. for j:= 1 to M do
  45. if (coppie[i,j]=0) and (i<j) then
  46. begin
  47. P:=P+1;
  48. ans[P][1]:=i; ans[P][2]:=j;
  49. end;
  50.  
  51. WriteLn(P);
  52. for i := 1 to P do
  53. begin
  54. for j := 1 to 2 do
  55. Write(ans[i][j], ' ');
  56. WriteLn();
  57. end;
  58.  
  59. end.
Success #stdin #stdout 0.01s 5288KB
stdin
4 6
2 1 2 
1 3
1 6 
1 4
stdout
14
1 3 
1 4 
1 5 
1 6 
2 3 
2 4 
2 5 
2 6 
3 4 
3 5 
3 6 
4 5 
4 6 
5 6