Advertisement
a53

rege

a53
Feb 27th, 2019
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.08 KB | None | 0 0
  1. #include <fstream>
  2.  
  3. using namespace std;
  4.  
  5. int a[1001][1001],m,n,s;
  6.  
  7. void calc(int l,int c)
  8. {
  9. int l1,c1;
  10. int dx[8]={-1,-1,-1,0,0,1,1,1};
  11. int dy[8]={-1,0,1,-1,1,-1,0,1};
  12.  
  13. if (l<=0 || l>m || c<=0 || c>n)
  14. return;
  15.  
  16. for (int i=0;i<8;i++)
  17. {
  18. l1=l+dx[i];
  19. c1=c+dy[i];
  20. if (l1>0 && l1<=m && c1>0 && c1<=n && a[l1][c1]*s>0)
  21. a[l][c]=(a[l][c]+s*a[l1][c1]) % 666013;
  22. }
  23. a[l][c]=a[l][c]*(-s);
  24. }
  25.  
  26. int main()
  27. {
  28. int l1,l2,c1,c2,max,i,j;
  29.  
  30. ifstream f("rege.in");
  31.  
  32. f>>m>>n;
  33. f>>l1>>c1;
  34. f>>l2>>c2;
  35.  
  36.  
  37. for (i=1;i<=m;i++)
  38. for (j=1;j<=n;j++)
  39. a[i][j]=0;
  40. a[l1][c1]=1;
  41.  
  42. if (l2>l1)
  43. max=l2-l1;
  44. else
  45. max=l1-l2;
  46.  
  47. if (c2>c1)
  48. {
  49. if (c2-c1>max)
  50. max=c2-c1;
  51. }
  52. else
  53. if (c1-c2>max)
  54. max=c1-c2;
  55.  
  56. s=1;
  57. for (int p=1;p<=max;p++)
  58. {
  59. for (j=c1-p;j<=c1+p;j++)
  60. {
  61. calc(l1-p,j);
  62. calc(l1+p,j);
  63. }
  64. for (i=l1-p+1;i<=l1+p-1;i++)
  65. {
  66. calc(i,c1-p);
  67. calc(i,c1+p);
  68. }
  69. s=s*(-1);
  70. }
  71.  
  72. ofstream g("rege.out");
  73. if (a[l2][c2]>0)
  74. g<<a[l2][c2]<<"\n";
  75. else
  76. g<<(-a[l2][c2])<<"\n";
  77. g.close();
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement