Advertisement
a53

piatra

a53
Jul 25th, 2018
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. {se da o matrice mare a[m,n], stiind ca este completat cu numere 1,2,...,m*n
  2. diagonala dupa diagonala, serpuit ,
  3. Dandu-se linia si coloana, sa se calculeze valoarea lui
  4. k=a[lin,col]}
  5. program serpuit;
  6. var p,min,m,s,n,lin,col,k:longint;
  7. f,g:text;
  8.  
  9. begin
  10. writeln;
  11. assign(f,'piatra.in');
  12. reset(f);
  13. assign(g,'piatra.out');
  14. rewrite(g);
  15. readln(f,m,n,lin,col);
  16. k:=0;
  17. if m<n then min:=m else min:=n;
  18. if min+1>lin+col then
  19. begin
  20. s:=(lin+col-2)*(lin+col-1) div 2;
  21. if odd(lin+col) then
  22. k:=s+lin
  23. else
  24. k:=s+col;
  25. end
  26. else
  27. if m+n-min+1<lin+col then
  28. begin
  29. p:=m+n-lin-col;
  30. s:=m*n-p*(p+1) div 2;
  31. if odd(lin+col) then
  32. k:=s-m+lin
  33. else
  34. k:=s-n+col
  35. end
  36. else
  37. begin
  38. s:=min*(min+1) div 2;
  39. p:=col+lin-min-2;
  40. s:=s+p*min;
  41. if n<m then
  42. if odd(lin+col) then
  43. k:=s+n-col+1
  44. else
  45. k:=s+col
  46. else
  47. if odd(lin+col) then
  48. k:=s+lin
  49. else
  50. k:=s+m-lin+1;
  51. end;
  52. writeln(g,k);
  53. close(f);
  54. close(g);
  55. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement