Advertisement
Guest User

Untitled

a guest
Dec 6th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.37 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <limits.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include <stdbool.h>
  6. #include <math.h>
  7.  
  8. #define s_i(a) scanf("%d",(&a))
  9. #define p_i(a) printf("%d",(a))
  10. #define endl printf("\n")
  11. #define p_l(a) printf("%ld",(a))
  12. #define s_l(a) scanf("%ld",(&a))
  13. #define s_ll(a) scanf("%lld",(&a))
  14. #define p_ll(a) printf("%lld",(a))
  15. #define forn(l,r) for(i=l;i<r;i++)
  16. #define p_u(a) printf("%u",a)
  17. #define s_u(a) scanf("%u",(&a))
  18. #define s_f(a) printf("%f",(&a))
  19. #define s_lf(a) printf("%lf",(&a))
  20. #define s_llf(a) printf("%llf",(&a))
  21. #define forr(r,l) for(i=r;i>=l;i--)
  22. #define p_s(s) printf(s)
  23. #define p_p printf(" ")
  24. #define sqr(a) (a)*(a)
  25.  
  26. int main(void) {
  27.     int n,m;
  28.     s_i(n);s_i(m);
  29.     int mas[m+1][n+1];
  30.     int i;
  31.     int mas1[(int)500*500+1];
  32.     int mas2[(int)500*500+1];
  33.     forn(0,m){
  34.         int j;
  35.         for(j=0;j<n;j++){
  36.             mas[i][j]=0;
  37.             mas1[i*m+j]=mas2[i*m+j]=-1;
  38.         }
  39.     }
  40.  
  41.     int ans=0;
  42.  
  43.     int k;s_i(k);
  44.     forn(0,k){
  45.         int x,y;s_i(x);s_i(y);
  46.         x--;y--;
  47.         mas[x][y]=1;
  48.         mas1[i]=x;
  49.         mas2[i]=y;
  50.     }
  51.     int count_=n*m-k;
  52.     int counter=0;
  53.     while(count_>0){
  54.         int l=0;
  55.         forn(counter,counter+k){
  56.             if(mas1[i]>0&&!mas[mas1[i]-1][mas2[i]]){
  57.                 mas[mas1[i]-1][mas2[i]]=1;
  58.                 count_--;
  59.                 mas1[counter+k+l]=mas1[i]-1;
  60.                 mas2[counter+k+l]=mas2[i];
  61.                 l++;
  62.             }
  63.  
  64.             if(mas1[i]<m-1&&!mas[mas1[i]+1][mas2[i]]){
  65.                 mas[mas1[i]+1][mas2[i]]=1;
  66.                 count_--;
  67.                 mas1[counter+k+l]=mas1[i]+1;
  68.                 mas2[counter+k+l]=mas2[i];
  69.                 l++;
  70.             }
  71.  
  72.             if(mas2[i]>0&&!mas[mas1[i]][mas2[i]-1]) {
  73.                 mas[mas1[i]][mas2[i] - 1] = 1;
  74.                 count_--;
  75.                 mas1[counter + k + l] = mas1[i];
  76.                 mas2[counter + k + l] = mas2[i] - 1;
  77.                 l++;
  78.             }
  79.  
  80.             if(mas2[i]<n-1&&!mas[mas1[i]][mas2[i] + 1]) {
  81.                 mas[mas1[i]][mas2[i] + 1] = 1;
  82.                 count_--;
  83.                 mas1[counter + k + l] = mas1[i];
  84.                 mas2[counter + k + l] = mas2[i] + 1;
  85.                 l++;
  86.             }
  87.         }
  88.         counter+=k;
  89.         k=l;
  90.         ans++;
  91.     }
  92.  
  93.     p_i(ans);
  94.  
  95.     return 0;
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement