fork download
  1. Program M_power;
  2. var
  3. a, b, c, b1, c1: array [ 1..100, 1..100 ] of integer;
  4. i, j, Ia, n, k, l, ix, jx: integer;
  5.  
  6. begin
  7. readln( Ia );
  8. for i:= 1 to Ia do
  9. begin
  10. for j:= 1 to Ia do
  11. read( a[ i, j ] );
  12. readln;
  13. end;
  14.  
  15. readln( n );
  16. k:= n;
  17. for i:= 1 to Ia do
  18. for j:= 1 to Ia do
  19. if i = j then b[ i, j ]:= 1
  20. else b[ i, j ]:= 0;
  21. for i:= 1 to Ia do
  22. for j:= 1 to Ia do
  23. c[ i, j ]:= a[ i, j ];
  24.  
  25. while k <> 0 do
  26. if k mod 2 = 0 then
  27. begin
  28. k:= k div 2;
  29. for i:= 1 to Ia do
  30. for j:= 1 to Ia do
  31. for l:= 1 to Ia do
  32. begin
  33. c1[ i, j ]:= c1[ i, j ] + c[ i, l ] * c[ l, j ];
  34. for ix:= 1 to Ia do
  35. for jx:= 1 to Ia do
  36. begin
  37. c[ ix, jx ]:= c1[ ix, jx ];
  38. c1[ ix, jx ]:= 0;
  39. end;
  40. end;
  41. end
  42. else
  43. begin
  44. k:= k - 1;
  45. for i:= 1 to Ia do
  46. for j:= 1 to Ia do
  47. for l:= 1 to Ia do
  48. begin
  49. b1[ i, j ]:= b1[ i, j ] + b[ i, l ] * c[ l, j ];
  50. for ix:= 1 to Ia do
  51. for jx:= 1 to Ia do
  52. begin
  53. b[ ix, jx ]:= b1[ ix, jx ];
  54. b1[ ix, jx ]:= 0;
  55. end;
  56. end;
  57. end;
  58. for i:= 1 to Ia do
  59. begin
  60. for j:= 1 to Ia do
  61. write( b1[ i, j ] );
  62. writeln;
  63. end;
  64. end.
Success #stdin #stdout 0.02s 4308KB
stdin
3
1 0 0
0 1 0
0 0 1
5
stdout
000
000
000