Advertisement
Guest User

c

a guest
Jul 18th, 2019
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.27 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. #include <ext/pb_ds/tree_policy.hpp>
  3. #include <ext/pb_ds/assoc_container.hpp>
  4. using namespace std;
  5. using namespace __gnu_pbds;
  6. typedef int ll;
  7. typedef unsigned long long ull;
  8. typedef pair<ll,ll>pll;
  9. typedef pair<int,int>pii;
  10. typedef pair<int,pair<int,int>>piii;
  11. typedef pair<ll,pair<ll,ll>>plll;
  12. typedef tree<ll, null_type, less<ll>, rb_tree_tag,tree_order_statistics_node_update> orderedSet;
  13. #define fastread() (ios_base:: sync_with_stdio(false),cin.tie(NULL));
  14. #define sf(a) scanf("%I64d",&a)
  15. #define pf(a) printf("%I64d\n",a)
  16. #define mem(a,b) memset(a,b,sizeof(a))
  17. #define vll(v) v.begin(),v.end()
  18. #define all(x) x.rbegin(),x.rend()
  19. #define min3(a, b, c) min(a, min(b, c))
  20. #define F first
  21. #define S second
  22. #define minheap int,vector<int>,greater<int>
  23. //#define mp make_pair
  24. #define pb push_back
  25. #define pp pop_back
  26. #define eb emplace_back
  27. #define in freopen("input.txt", "r", stdin)
  28. #define out freopen("output.txt", "w", stdout)
  29. #define BOUNDARY(i, j) ((i >= 0 && i < row) && (j >= 0 && j < column))
  30. #define ischar(x) (('a' <= x && x <= 'z') || ('A' <= x && x <= 'Z'))
  31. #define isvowel(ch) ((ch=='a'||ch=='e'||ch=='i'||ch=='o'||ch=='u')||(ch=='A'|| ch=='E' || ch=='I'|| ch=='O'|| ch=='U'))
  32. const int Max = 2e6 + 10;
  33. const int Mod = 1e9 + 7;
  34. const double PI =3.141592653589793238463;
  35. bool compare(const pair<int,int> &a, const pair<int,int> &b)
  36. {
  37. return (a.first > b.first);
  38. }
  39. ll lcm(ll a,ll b)
  40. {
  41. if(a==0 || b==0)return 0;
  42.  
  43. return a/__gcd(a,b)*b;
  44. }
  45. //___________________________________________________________________________________________________________________
  46. // CODE STARTS FROM HERE
  47. // MU_Codefighter2019
  48. //-------------------------------------------------------------------------------------------------------------------
  49.  
  50. ll ara[1001][1001],arac[1001][1001],n,m;
  51.  
  52.  
  53. void input()
  54. {
  55. ll i,j;
  56.  
  57. for(i=1; i<=n; i++)
  58. for(j=1; j<=m; j++)
  59. {
  60. scanf("%d",&ara[i][j]);
  61.  
  62. if(ara[i][j]==1)
  63. {
  64. arac[i][j]=arac[i-1][j]+1;
  65. }
  66. else arac[i][j]=0;
  67.  
  68.  
  69. }
  70.  
  71. }
  72.  
  73. void debug()
  74. {
  75. ll i,j;
  76.  
  77. cout<<"debug"<<endl;
  78.  
  79. for(i=1; i<=n; i++)
  80. {
  81. for(j=1; j<=m; j++)
  82. {
  83. cout<<arac[i][j]<<" ";
  84. }cout<<endl;
  85. }
  86. }
  87.  
  88.  
  89.  
  90. ll solution()
  91. {
  92. ll mx=0,i,j;
  93.  
  94. for(i=1; i<=n; i++)
  95. {
  96. for(j=1; j<=m; j++)
  97. {
  98. if(arac[i][j])
  99. {
  100. ll square= arac[i][j],len=1;
  101.  
  102. ll pos=j;
  103.  
  104.  
  105. while(j<=m && len<=square)
  106. {
  107. j++;
  108.  
  109. if(square>arac[i][j])
  110. {
  111. pos=j;
  112.  
  113. square=arac[i][j];
  114. }
  115.  
  116. len++;
  117. }
  118. j=pos;
  119.  
  120.  
  121.  
  122. mx=max(len-1,mx);
  123. }
  124. }
  125. }
  126.  
  127. return mx;
  128. }
  129.  
  130. int main()
  131. {
  132. fastread();
  133.  
  134. ll i,j,p,sum=3,k,t,a,b,c,d,cnt=0,q,cas=1,o;
  135.  
  136. while(scanf("%d %d",&n,&m) && (n || m))
  137. {
  138. input();
  139.  
  140. // debug();
  141.  
  142. ll ans=solution();
  143.  
  144. printf("%d\n",ans);
  145. }
  146.  
  147.  
  148.  
  149. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement