Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <limits.h>
- #include <stdlib.h>
- #include <string.h>
- #include <stdbool.h>
- #include <math.h>
- #define s_i(a) scanf("%d",(&a))
- #define p_i(a) printf("%d",(a))
- #define endl printf("\n")
- #define p_l(a) printf("%ld",(a))
- #define s_l(a) scanf("%ld",(&a))
- #define s_ll(a) scanf("%lld",(&a))
- #define p_ll(a) printf("%lld",(a))
- #define forn(l,r) for(i=l;i<r;i++)
- #define p_u(a) printf("%u",a)
- #define s_u(a) scanf("%u",(&a))
- #define s_f(a) printf("%f",(&a))
- #define s_lf(a) printf("%lf",(&a))
- #define s_llf(a) printf("%llf",(&a))
- #define forr(r,l) for(i=r;i>=l;i--)
- #define p_s(s) printf(s)
- #define p_p printf(" ")
- #define sqr(a) (a)*(a)
- int main(void) {
- int n,m;
- s_i(n);s_i(m);
- int mas[m+1][n+1];
- int i;
- int mas1[(int)500*500+1];
- int mas2[(int)500*500+1];
- forn(0,m){
- int j;
- for(j=0;j<n;j++){
- mas[i][j]=0;
- mas1[i*m+j]=mas2[i*m+j]=-1;
- }
- }
- int ans=0;
- int k;s_i(k);
- forn(0,k){
- int x,y;s_i(x);s_i(y);
- x--;y--;
- mas[x][y]=1;
- mas1[i]=x;
- mas2[i]=y;
- }
- int count_=n*m-k;
- int counter=0;
- while(count_>0){
- int l=0;
- forn(counter,counter+k){
- if(mas1[i]>0&&!mas[mas1[i]-1][mas2[i]]){
- mas[mas1[i]-1][mas2[i]]=1;
- count_--;
- mas1[counter+k+l]=mas1[i]-1;
- mas2[counter+k+l]=mas2[i];
- l++;
- }
- if(mas1[i]<m-1&&!mas[mas1[i]+1][mas2[i]]){
- mas[mas1[i]+1][mas2[i]]=1;
- count_--;
- mas1[counter+k+l]=mas1[i]+1;
- mas2[counter+k+l]=mas2[i];
- l++;
- }
- if(mas2[i]>0&&!mas[mas1[i]][mas2[i]-1]) {
- mas[mas1[i]][mas2[i] - 1] = 1;
- count_--;
- mas1[counter + k + l] = mas1[i];
- mas2[counter + k + l] = mas2[i] - 1;
- l++;
- }
- if(mas2[i]<n-1&&!mas[mas1[i]][mas2[i] + 1]) {
- mas[mas1[i]][mas2[i] + 1] = 1;
- count_--;
- mas1[counter + k + l] = mas1[i];
- mas2[counter + k + l] = mas2[i] + 1;
- l++;
- }
- }
- counter+=k;
- k=l;
- ans++;
- }
- p_i(ans);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement