Advertisement
huyhung94

Phân việc

Sep 19th, 2013
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 2.31 KB | None | 0 0
  1. uses crt;
  2. Var
  3.   a,x,xmax:array[1..7] of integer;
  4.   v: array[1..7,1..7] of integer;
  5.   i,j,n,HSX,HSMAX:integer;
  6.  
  7. procedure bandau;
  8. var i,j,k: integer;
  9. begin
  10.  clrscr;
  11.  textcolor(white);
  12.  write('   ');
  13.  for k:=1 to n do write('V',k,' ');
  14.  for i:=1 to n do
  15.   begin
  16.    writeln;
  17.    write('N',i);
  18.    for j:=1 to n do write(v[i,j]:3);
  19.   end;
  20. end;
  21.  
  22. procedure velai;
  23. var i,j,k: integer;
  24. begin
  25.  clrscr;
  26.  textcolor(white);
  27.  write('   ');
  28.  for k:=1 to n do write('V',k,' ');
  29.  for i:=1 to n do
  30.   begin
  31.    writeln;
  32.    write('N',i);
  33.    for j:=1 to n do
  34.     if x[i] <> j then
  35.      begin
  36.       write(v[i,j]:3);
  37.      end
  38.     else
  39.      begin
  40.        textcolor(yellow);
  41.        write(v[i,j]:3);
  42.        textcolor(white);
  43.      end;
  44.   end;
  45.  writeln;
  46.  writeln;
  47.  writeln('HSX= ', HSX);
  48. end;
  49.  
  50. procedure xong;
  51. var i,j,k: integer;
  52. begin
  53.  clrscr;
  54.  textcolor(white);
  55.  write('   ');
  56.  for k:=1 to n do write('V',k,' ');
  57.  for i:=1 to n do
  58.   begin
  59.    writeln;
  60.    write('N',i);
  61.    for j:=1 to n do
  62.     if xmax[i] <> j then
  63.      begin
  64.       write(v[i,j]:3);
  65.      end
  66.     else
  67.      begin
  68.        textcolor(red);
  69.        write(v[i,j]:3);
  70.        textcolor(white);
  71.      end;
  72.   end;
  73.  writeln;
  74.  writeln;
  75.  writeln('HSMAX= ', HSMAX);
  76. end;
  77.  
  78. procedure print;
  79. var j,k:integer;
  80. begin
  81.  HSX:=0;
  82.  for j:=1 to n do HSX:=HSX+v[j,x[j]];
  83.  if (HSX<>HSMAX) then velai else xong;
  84.  delay(3000);
  85. end;
  86.  
  87. procedure print1;
  88. var j,k:integer;
  89. begin
  90.  HSX:=0;
  91.  for j:=1 to n do HSX:=HSX+v[j,x[j]];
  92.  if HSX>HSMAX then
  93.   begin
  94.    HSMAX:=HSX;
  95.    for k:=1 to n do xmax[k]:=x[k];
  96.   end;
  97. end;
  98.  
  99. procedure try(i:integer; t:integer);
  100. var j:integer;
  101.  begin
  102.   if i>n then
  103.         begin
  104.         case t of
  105.         0: print1;
  106.         1: print;
  107.         end;
  108.         end
  109.         else
  110.   for j:=1 to n do
  111.    if (a[j]=0) then
  112.     begin
  113.      x[i]:=j;
  114.      a[j]:=1;
  115.      try(i+1,t);
  116.      a[j]:=0;
  117.     end;
  118.   end;
  119.  
  120. begin
  121.  clrscr;
  122.  HSMAX:=0;
  123.  repeat
  124.   write('Nhap so nguoi va so cong viec n= ');
  125.   readln(n);
  126.  until (n>0) and (n<8);
  127.  writeln('Nhap du lieu: ');
  128.  for i:=1 to n do
  129.  begin
  130.  writeln('Cong viec ',i,': ');
  131.  for j:=1 to n do
  132.   begin
  133.    writeln('Hieu suat cong viec ',i,' cua nguoi ',j,' la: ');
  134.    write('v[',i,',',j,']= ');
  135.    readln(v[i,j]);
  136.   end;
  137.  end;
  138.  bandau;
  139.  try(1,0);
  140.  try(1,1);
  141.  xong;
  142.  readln;
  143. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement