fork download
  1. program subjects;
  2.  
  3. const
  4. MAXN = 100000;
  5. MAXM = 1000;
  6.  
  7. var
  8. M, N, P, i, j, h,a, b, conta : LongInt;
  9. K : Array[0..MAXN-1] of LongInt;
  10. S : Array[0..MAXN-1] of Array[0..5] of LongInt;
  11. ans : Array[0..MAXM-1] of Array[0..1] of LongInt;
  12. graph : array[0..MAXM-1] of array of LongInt;
  13. gsize, gcapa, materia: array[0..MAXN-1] of longint;
  14.  
  15. begin
  16. {
  17.   uncomment the two following lines if you want to read/write from files
  18.   assign(input, 'input.txt'); reset(input);
  19.   assign(output, 'output.txt'); rewrite(output);
  20. }
  21.  
  22. ReadLn(N, M);
  23.  
  24. for i := 0 to N - 1 do
  25. begin
  26. Read(K[i]);
  27. for j := 0 to K[i] - 1 do
  28. Read(S[i][j]);
  29. end;
  30.  
  31.  
  32. for h:=0 to M-1 do
  33. begin
  34. setlength(graph[h], 1);
  35. (* all’inizio, la lista di adiacenza del nodo i ha dimensione 0
  36.   * e capacita’ 1.
  37.   *)
  38. gsize[h] := 0;
  39. gcapa[h] := 1;
  40. end;
  41. for i:=0 to N-1 do
  42. begin
  43. for j:=0 to K[i]-1 do
  44. begin
  45. a:= S[i][j]; b:=i; end; end; end.
  46. (* se ho esaurito i posti nella lista di adiacenza del nodo a *)
  47. if gsize[a] = gcapa[a] then
  48. begin
  49. (* allora raddoppio la sua capacita’ *)
  50. gcapa[a] := gcapa[a] shl 1;
  51. setlength(graph[a], gcapa[a]);
  52. end;
  53. graph[a][gsize[a]] := b;
  54. inc(gsize[a]);
  55. end;
  56. end; end.
  57. P := 0; conta:=0; conta:=0;
  58. for i := 0 to 2 - 1 do
  59. for j := 0 to MAXM - 1 do
  60. ans[j][i] := 0;
  61. for i:=0 to M-1 do if gsize[i]=0 then begin conta:=conta+1; materia[conta]:=i; end;
  62.  
  63. for i:=0 to M do
  64. begin
  65. for j:=0 to N do write (graph[i][j],' ');
  66. writeln;
  67. end;
  68. end.
  69.  
  70. WriteLn(P);
  71. for i := 0 to P - 1 do
  72. begin
  73. for j := 0 to 2 - 1 do
  74. Write(ans[i][j], ' ');
  75. WriteLn();
  76. end;
  77.  
  78. end.
  79.  
Success #stdin #stdout 0.01s 5284KB
stdin
4 5
4 1 2 3 4
1 2
2 1 5
3 2 3 1
stdout
Standard output is empty