Advertisement
YEZAELP

PROG-1058: Longest

Jun 19th, 2020
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.59 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int n,m;
  4. char ar[1001][1001];
  5. int up[1001][1001],l[1001][1001];
  6. int down[1002][1002],r[1002][1002];
  7. int find_max(int a,int b,int c,int d,int e,int f,int g){
  8.     return max(a,max(b,max(c,max(d,max(e,max(f,g))))));
  9. }
  10. int main(){
  11.     int t;
  12.     scanf("%d",&t);
  13.     while(t--){
  14.         scanf("%d%d",&n,&m);
  15.         for(int i=1;i<=n;i++){
  16.             for(int j=1;j<=m;j++){
  17.                 up[i][j]=0;
  18.                 down[i][j]=0;
  19.                 l[i][j]=0;
  20.                 r[i][j]=0;
  21.                 scanf(" %c",&ar[i][j]);
  22.                 if(ar[i][j]=='1'){
  23.                     up[i][j]=up[i-1][j]+1;
  24.                     l[i][j]=l[i][j-1]+1;
  25.                 }
  26.             }
  27.         }
  28.         for(int j=1;j<=m+1;j++) down[n+1][j]=0;
  29.         for(int i=1;i<=n+1;i++) r[i][m+1]=0;
  30.  
  31.         int mx=0;
  32.         for(int i=n;i>=1;i--){
  33.             for(int j=m;j>=1;j--){
  34.                 if(ar[i][j]=='0') continue;
  35.                 int up_down,left_right,up_right,up_left,down_right,down_left;
  36.  
  37.                 down[i][j]=down[i+1][j]+1;
  38.                 r[i][j]=r[i][j+1]+1;
  39.  
  40.                 up_down=1+up[i-1][j]+down[i+1][j];
  41.                 left_right=1+l[i][j-1]+r[i][j+1];
  42.                 up_right=1+up[i-1][j]+r[i][j+1];
  43.                 up_left=1+up[i-1][j]+l[i][j-1];
  44.                 down_right=1+r[i][j+1]+down[i+1][j];
  45.                 down_left=1+l[i][j-1]+down[i+1][j];
  46.  
  47.                 mx=find_max(mx,up_down,left_right,up_right,up_left,down_right,down_left);
  48.             }
  49.         }
  50.         printf("%d\n",mx);
  51.     }
  52.  
  53.     return 0;
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement