Advertisement
Anon2005

figuri2

Feb 21st, 2019
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.55 KB | None | 0 0
  1. #include <fstream>
  2. using namespace std;
  3. ifstream in("figuri2.in");
  4. ofstream out("figuri2.out");
  5. int v[256][256],sus[256][256],dr[256][256],st[256][256],d1[256][256],d2[256][256],d3[256][256];
  6. int main()
  7. {
  8.     int n,i,j,max1=0,max2=0,cnt1=0,cnt2=0;
  9.     char x;
  10.     in>>n;
  11.     for(i=1; i<=n; i++)
  12.         for(j=1; j<=n; j++)
  13.         {
  14.             in>>x;
  15.             v[i][j]=x-'0';
  16.         }
  17.     for(i=1; i<=n; i++)
  18.         for(j=1; j<=n; j++)
  19.         {
  20.             sus[i][j]=(v[i][j]==1)*(sus[i-1][j]+1);
  21.             st[i][j]=(v[i][j]==1)*(st[i][j-1]+1);
  22.         }
  23.     for(i=1; i<=n; i++)
  24.         for(j=n; j>=1; j--)
  25.             dr[i][j]=(v[i][j]==1)*(dr[i][j+1]+1);
  26.     for(i=1; i<=n; i++)
  27.         for(j=1; j<=n; j++)
  28.         {
  29.             d1[i][j]=min(d1[i-1][j-1]+1,min(sus[i][j],st[i][j]));
  30.             d2[i][j]=min(d2[i-1][j]+1,min(st[i][j],dr[i][j]));
  31.         }
  32.     for(i=n; i>=1; i--)
  33.         for(j=1; j<=n; j++)
  34.             d3[i][j]=min(d3[i+1][j]+1,min(st[i][j],dr[i][j]));
  35.     for(i=1; i<=n; i++)
  36.         for(j=1; j<=n; j++)
  37.             if(d1[i][j]>max1)
  38.             {
  39.                 max1=d1[i][j];
  40.                 cnt1=1;
  41.             }
  42.             else if(d1[i][j]==max1)
  43.                 cnt1++;
  44.     for(i=1; i<=n; i++)
  45.         for(j=1; j<=n; j++)
  46.             if(min(d2[i][j],d3[i][j])>max2)
  47.             {
  48.                 max2=min(d2[i][j],d3[i][j]);
  49.                 cnt2=1;
  50.             }
  51.             else if(min(d2[i][j],d3[i][j])==max2)
  52.                 cnt2++;
  53.     out<<max1<<" "<<cnt1<<'\n'<<max2<<" "<<cnt2;
  54.     return 0;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement