Kaidul

UVa 836

Dec 3rd, 2013
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.53 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define MEMSET_INF 127
  4. #define MEMSET_HALF_INF 63
  5. #define stream istringstream
  6. #define rep(i,n) for(__typeof(n) i=0; i<(n); i++)
  7. #define repl(i,n) for(__typeof(n) i=1; i<=(n); i++)
  8. #define FOR(i,a,b) for(__typeof(b) i=(a); i<=(b); i++)
  9. #define INF (1<<30)
  10. #define PI acos(-1.0)
  11. #define pb push_back
  12. #define ppb pop_back
  13. #define all(x) x.begin(),x.end()
  14. #define mem(x,y) memset(x,y,sizeof(x))
  15. #define memsp(x) mem(x,MEMSET_INF)
  16. #define memdp(x) mem(x,-1)
  17. #define memca(x) mem(x,0)
  18. #define eps 1e-9
  19. #define pii pair<int,int>
  20. #define pmp make_pair
  21. #define ft first
  22. #define sd second
  23. #define vi vector<int>
  24. #define vpii vector<pii>
  25. #define si set<int>
  26. #define msi map<string , int >
  27. #define mis map<int , string >
  28. typedef long long i64;
  29. typedef unsigned long long ui64;
  30. #define SDi(x) sf("%d",&x)
  31. #define SDl(x) sf("%lld",&x)
  32. #define SDs(x) sf("%s",x)
  33. #define SD2(x,y) sf("%d%d",&x,&y)
  34. #define SD3(x,y,z) sf("%d%d%d",&x,&y,&z)
  35. #define pf printf
  36. #define print(x) pf("%d ", x)
  37. #define println(x) pf("%d\n", x)
  38. #define sf scanf
  39. #define READ(f) freopen(f, "r", stdin)
  40.  
  41. #define Max 101
  42. using namespace std;
  43.  
  44. int main (void) {
  45. #ifndef ONLINE_JUDGE
  46.     freopen ("input.txt", "r", stdin);
  47. #endif // ONLINE_JUDGE
  48.     int testCase;
  49.     scanf ("%d", &testCase);
  50.     bool space = false;
  51.     getchar ();
  52.  
  53.     char input [25 + 3] [25 + 3];
  54.     gets (input [0]);
  55.  
  56.     while ( testCase-- ) {
  57.  
  58.         int index = 0;
  59.  
  60.         while ( gets (input [index]) and strlen (input [index]) )
  61.             index++;
  62.  
  63.         int a [25 + 3] [25 + 3];
  64.         int k = 0;
  65.         for ( int i = 0; i < index; i++ ) {
  66.             k = 0;
  67.             for ( int j = 0; j < index; j++ ) {
  68.                 a [i] [j] = input [i] [j] == '1' ? 1 : 0;
  69.                 a[i][j] = a[i][j] == 1 ? k = k + 1 : k = 0;
  70.             }
  71.         }
  72.  
  73.         int maxSum = 0, item;
  74.         for (int i = 0; i < index; i++)
  75.             for (int j = 0; j < index; j++)
  76.                 if (a[i][j]) {
  77.                     item = a[i][j];
  78.                     maxSum = max(maxSum, item);
  79.                     for (int k= i + 1, l = 2; k < index; k++, l++)
  80.                         if (a[k][j]) {
  81.                             if (item > a[k][j])
  82.                                 item = a[k][j];
  83.                             maxSum = max(maxSum, item * l);
  84.                         } else break;
  85.                 }
  86.  
  87.  
  88.         if ( space ) printf ("\n");
  89.         space = true;
  90.         printf ("%d\n", maxSum);
  91.     }
  92.  
  93.     return 0;
  94. }
Advertisement
Add Comment
Please, Sign In to add comment