Advertisement
nihalshahria

c.cpp

Mar 31st, 2020
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.83 KB | None | 0 0
  1. /*
  2.           _____       __   __   __      __                  __
  3.          |     \     |  | |  | |  |    |  |       /\       |  |
  4.          |  |\  \    |  | |  | |  |    |  |      /  \      |  |
  5.          |  | \  \   |  | |  | |  |____|  |     / /\ \     |  |
  6.          |  |  \  \  |  | |  | |   ____   |    / /__\ \    |  |
  7.          |  |   \  \ |  | |  | |  |    |  |   / ______ \   |  |
  8.          |  |    \  \|  | |  | |  |    |  |  / /      \ \  |  |_________
  9.          |__|     \_____| |__| |__|    |__| /_/        \_\ |____________|
  10. */
  11. #include <bits/stdc++.h>
  12. #define sf(a)               scanf("%d",&a)
  13. #define sfl(a)              scanf("%lld",&a)
  14. #define sff(a,b)            scanf("%d %d",&a,&b)
  15. #define sffl(a,b)           scanf("%lld %lld",&a,&b)
  16. #define sfff(a,b,c)         scanf("%d %d %d",&a,&b,&c)
  17. #define sfffl(a,b,c)        scanf("%lld %lld %lld",&a,&b,&c)
  18. #define sffff(a,b,c,d)      scanf("%d %d %d %d",&a,&b,&c,&d)
  19. #define sffffl(a,b,c,d)     scanf("%lld %lld %lld %lld",&a,&b,&c,&d)
  20. #define sfffff(a,b,c,d,e)   scanf("%d %d %d %d %d",&a,&b,&c,&d,&e)
  21. #define sfffffl(a,b,c,d,e)  scanf("%lld %lld %lld %lld %lld",&a,&b,&c,&d,&e)
  22. #define MEM(a,b)            memset(a, (b), sizeof(a))
  23. #define sfc(a)              scanf("%c",&a)
  24. #define pb(a)               push_back(a)
  25. #define X                   first
  26. #define Y                   second
  27. #define sz(x)               x.size()
  28. #define pii                 pair<int,int>
  29. #define pli                 pair<long long int,int>
  30. #define mp(a,b)             make_pair(a,b)
  31. #define fr(i,x,n)           for(int i=x;i<n;i++)
  32. #define rfr(i,x,n)          for(int i=x;i>n;i--)
  33. #define LCM(a, b)           ((a)*((b)/GCD(a,b)))
  34. template<typename T>T Abs(T a) {
  35.     return (a < 0 ? -a : a);
  36. }
  37. template<typename T>T MAX(T a, T b) {
  38.     return (a > b ? a : b);
  39. }
  40. template<typename T>T MIN(T a, T b) {
  41.     return (a < b ? a : b);
  42. }
  43. template<typename T>T GCD(T a, T b) {
  44.     if (b == 0)return a;
  45.     return GCD(b, a % b);
  46. }
  47. template<typename T>inline void read(T &x) {
  48.     T f = 1;
  49.     char c;
  50.     x = 0;
  51.     for (c = getchar(); c < '0' || c > '9'; c = getchar())if (c == '-')f = -1;
  52.     for (; c >= '0' && c <= '9'; c = getchar())x = x * 10 + c - '0';
  53.     x *= f;
  54. }
  55. using fl = float;
  56. using db = double;
  57. using ll = long long;
  58. using ull = unsigned long long;
  59. const int mx = 10005;
  60. const int inf = 99999999;
  61. const int intlim = 2147483648;
  62. const db PI = acos(-1); //3.14159265358979323846264338328
  63. /*------------------------------Graph Moves----------------------------*/
  64. //const int fx[]={+1,-1,+0,+0};
  65. //const int fy[]={+0,+0,+1,-1};
  66. const int fx[] = { +0, +0, +1, -1, -1, +1, -1, +1}; // Kings Move
  67. const int fy[] = { -1, +1, +0, +0, +1, +1, -1, -1}; // Kings Move
  68. //const int fx[]={-2, -2, -1, -1,  1,  1,  2,  2};  // Knights Move
  69. //const int fy[]={-1,  1, -2,  2, -2,  2, -1,  1}; // Knights Move
  70. /*---------------------------------------------------------------------*/
  71. using namespace std;
  72. string str[26];
  73. int vis[25][25];
  74. int n, c = 0;
  75. void dfs(int x, int y) {
  76.     if (x < 0 || y < 0 || x >= n || y >= n)return;
  77.     c++, vis[x][y] = 1;
  78.     for (int i = 0; i < 8; ++i)
  79.         if (str[x + fx[i]][y + fy[i]] == '1' && !vis[x + fx[i]][y + fy[i]])
  80.             dfs(x + fx[i], y + fy[i]);
  81. }
  82. int main() {
  83.     int t, z = 1;
  84.     cin >> t;
  85.     while (t--) {
  86.         str[0].clear();
  87.         c = 0;
  88.         for (int i = 0; i < 25; i++)for (int j = 0; j < 25; ++j)vis[i][j] = 0;
  89.         getchar();
  90.         cin >> str[0];
  91.         n = sz(str[0]);
  92.         for (int i = 1; i < n; ++i)cin >> str[i];
  93.         int ans = 0;
  94.         for (int i = 0; i < n; ++i)cout << str[i] << endl;
  95.         if (n != 0)
  96.             for (int i = 0; i < n; ++i)
  97.                 for (int j = 0; j < n; ++j) {
  98.                     c = 0;
  99.                     if (str[i][j] == '1' && vis[i][j] == 0)dfs(i, j), ans = MAX(ans, c);
  100.                 }
  101.         printf("%d\n", ans);
  102.         if (t)printf("\n");
  103.     }
  104.     return 0;
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement