fork download
  1. Program M_POWER;
  2. var a, b, c, b1, c1: array[ 1..100, 1..100 ] of integer;
  3. Ia, i, j, k, n: integer;
  4. begin
  5. readln( Ia ); { Количество строк }
  6. for i:= 1 to Ia do
  7. begin
  8. for j:= 1 to Ia do
  9. read( a[ i, j ] );
  10. readln;
  11. end; { Сама матрица }
  12. readln( n ); { Степень }
  13.  
  14. for i:= 1 to Ia do
  15. for j:= 1 to Ia do
  16. c[ i, j ]:= a[ i, j ]; {C = A }
  17. for i:= 1 to Ia do
  18. for j:= 1 to Ia do
  19. if i = j then
  20. b[ i, j ]:= 1
  21. else b[ i, j ]:= 0; { B - еденичная матрица }
  22.  
  23. while n <> 0 do
  24. if n mod 2 = 0 then
  25. begin
  26. n:= n div 2;
  27. for i:= 1 to Ia do
  28. for j:= 1 to Ia do
  29. for k:= 1 to Ia do
  30. c1[ i, j ]:= c1[ i, j ] + c[ i, k ] * c[ k, j ];
  31. for i:= 1 to Ia do
  32. for j:= 1 to Ia do
  33. begin
  34. c[ i, j ]:= c1[ i, j ];
  35. c1[ i, j ]:= 0;
  36. end;
  37. end
  38. else
  39. begin
  40. n:= n - 1;
  41. for i:= 1 to Ia do
  42. for j:= 1 to Ia do
  43. for k:= 1 to Ia do
  44. b1[ i, j ]:= b1[ i, j ] + b[ i, k ] * c[ k, j ];
  45. for i:= 1 to Ia do
  46. for j:= 1 to Ia do
  47. begin
  48. b[ i, j ]:= b1[ i, j ];
  49. b1[ i, j ]:= 0;
  50. end;
  51. end;
  52. for i:= 1 to Ia do
  53. begin
  54. for j:= 1 to Ia do
  55. write( b[ i, j ], ' ' );
  56. writeln;
  57. end;
  58. end.
Success #stdin #stdout 0.01s 4308KB
stdin
2
1 2
3 4
3
stdout
37 54 
81 118