Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- using namespace std;
- ifstream in("figuri2.in");
- ofstream out("figuri2.out");
- int v[256][256],sus[256][256],dr[256][256],st[256][256],d1[256][256],d2[256][256],d3[256][256];
- int main()
- {
- int n,i,j,max1=0,max2=0,cnt1=0,cnt2=0;
- char x;
- in>>n;
- for(i=1; i<=n; i++)
- for(j=1; j<=n; j++)
- {
- in>>x;
- v[i][j]=x-'0';
- }
- for(i=1; i<=n; i++)
- for(j=1; j<=n; j++)
- {
- sus[i][j]=(v[i][j]==1)*(sus[i-1][j]+1);
- st[i][j]=(v[i][j]==1)*(st[i][j-1]+1);
- }
- for(i=1; i<=n; i++)
- for(j=n; j>=1; j--)
- dr[i][j]=(v[i][j]==1)*(dr[i][j+1]+1);
- for(i=1; i<=n; i++)
- for(j=1; j<=n; j++)
- {
- d1[i][j]=min(d1[i-1][j-1]+1,min(sus[i][j],st[i][j]));
- d2[i][j]=min(d2[i-1][j]+1,min(st[i][j],dr[i][j]));
- }
- for(i=n; i>=1; i--)
- for(j=1; j<=n; j++)
- d3[i][j]=min(d3[i+1][j]+1,min(st[i][j],dr[i][j]));
- for(i=1; i<=n; i++)
- for(j=1; j<=n; j++)
- if(d1[i][j]>max1)
- {
- max1=d1[i][j];
- cnt1=1;
- }
- else if(d1[i][j]==max1)
- cnt1++;
- for(i=1; i<=n; i++)
- for(j=1; j<=n; j++)
- if(min(d2[i][j],d3[i][j])>max2)
- {
- max2=min(d2[i][j],d3[i][j]);
- cnt2=1;
- }
- else if(min(d2[i][j],d3[i][j])==max2)
- cnt2++;
- out<<max1<<" "<<cnt1<<'\n'<<max2<<" "<<cnt2;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement