Advertisement
a53

[iatra

a53
Feb 27th, 2019
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.30 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 k=a[lin,col]}
  4. #include <bits/stdc++.h>
  5. #define LL long long int
  6. using namespace std;
  7. ifstream f("piatra.in");
  8. ofstream g("piatra.out");
  9. LL p,minim,m,s,n,lin,col,k;
  10.  
  11.  
  12. int main()
  13. {
  14. f>>m>>n>>lin>>col;
  15. k=0;
  16. if(m<n)
  17. minim=m;
  18. else
  19. minim=n;
  20. if(minim+1>lin+col)
  21. {
  22. s=(lin+col-2)*(lin+col-1)/2;
  23. if((lin+col)%2==1)
  24. k=s+lin;
  25. else
  26. k=s+col;
  27. }
  28. else
  29. if(m+n-minim+1<lin+col)
  30. {
  31. p=m+n-lin-col;
  32. s=m*n-p*(p+1)/2;
  33. if((lin+col)%2==1)
  34. k=s-m+lin;
  35. else
  36. k=s-n+col;
  37. }
  38. else
  39. {
  40. s=minim*(minim+1)/2;
  41. p=col+lin-minim-2;
  42. s=s+p*minim;
  43. if(n<m)
  44. if((lin+col)%2==1)
  45. k=s+n-col+1;
  46. else
  47. k=s+col;
  48. else
  49. if((lin+col)%2==1)
  50. k=s+lin;
  51. else
  52. k=s+m-lin+1;
  53. }
  54. g<<k;
  55. f.close();
  56. g.close();
  57. return 0;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement