Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- using namespace std;
- ifstream f("vecini_buni.in");
- ofstream g("vecini_buni.out");
- short a[3][1002];
- int main()
- {
- int m,n,k,i,j,x,y,maxim=0,nrvec,nr=0;
- int dl[]={-1,-1,0,1,1, 1, 0,-1}; /// vector de directie pentru linie
- int dc[]={ 0, 1,1,1,0,-1,-1,-1}; /// vector de directie pentru coloana
- f>>m>>n>>k; /// m=nr. linii; n=nr. coloane; k=nr. perechi (i,j) egale cu 1
- for(int i=0;i<3;++i)
- a[i][0]=a[i][n+1]=2;
- for(int j=1;j<=n;++j)
- a[0][j]=a[2][j]=2;
- int linie=1;
- f>>x>>y;
- if(x==1)
- {
- a[1][y]=1;
- while(f>>x>>y&&x==1)
- a[1][y]=1;
- }
- while(linie<m+1)
- {
- ++linie;
- for(j=1;j<=n;++j)
- a[2][j]=0;
- if(x==linie)
- {
- a[2][y]=1;
- while(f>>x>>y&&x==linie)
- a[2][y]=1;
- }
- else
- for(int j=1;j<=n;++j)
- a[2][j]=0;
- if(linie==m+1)
- for(int j=1;j<=n;++j)
- a[2][j]=2;
- for(j=1;j<=n;++j)
- {
- nrvec=0;
- for(k=0;k<8;++k) /// un punct are 8 vecini
- {
- int ii=1+dl[k]; ///calculez coordonatele noului punct
- int jj=j+dc[k];
- if(a[1][j]==a[ii][jj])
- ++nrvec;
- }
- if(nrvec>maxim)
- maxim=nrvec,nr=1;
- else
- if(nrvec==maxim)
- ++nr;
- }
- for(i=0;i<=1;++i)
- for(j=0;j<=n+1;++j)
- a[i][j]=a[i+1][j];
- }
- g<<maxim<<' '<<nr;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement