• Source
    1. #include <iostream>
    2. #include <vector>
    3. using namespace std;
    4. int ans;
    5. int px[8]={0,0,1,-1,1,-1,1,-1};
    6. int py[8]={1,-1,0,0,1,-1,-1,1};
    7. int num;
    8. void rec(vector<vector<int>>& a,int x, int y)
    9. {
    10.  
    11. ans=max(ans,num);
    12. for(int i=0;i<8;++i)
    13. {
    14. if( a[x+px[i]][y+py[i]]==1)
    15. {
    16. a[x+px[i]][y+py[i]]=0;
    17. ++num;
    18. rec(a,x+px[i],y+py[i]);
    19. }
    20. }
    21.  
    22. }
    23. int main()
    24. {
    25. int n,m;
    26. cin>>n>>m;
    27. vector< vector<int>> a( n+10, vector<int>(m+10,0));
    28. for(int i=1;i<=n;++i)
    29. for(int j=1;j<=m;++j)
    30. cin>>a[i][j];
    31. ans=0;
    32. for(int i=1;i<=n;++i)
    33. for(int j=1;j<=m;++j)
    34. if(a[i][j]==1)
    35. {
    36. a[i][j]=0;
    37. num=1;
    38. rec(a,i,j);
    39. }
    40. cout<<ans;
    41. return 0;
    42. }