Advertisement
omar-alhelo

UVa 11902

Oct 20th, 2018
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.49 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. #define ld long double
  5. #define II pair<int,int>
  6. #define III pair<int, II>
  7. #define F first
  8. #define S second
  9. #define _mp make_pair
  10. #define VI vector<int>
  11. #define VII vector<II>
  12. #define VVI vector<vector<int>>
  13. #define _f front
  14. #define _b back
  15. #define push_ push_back
  16. #define _push push_front
  17. #define pop_ pop_back
  18. #define _pop pop_front
  19. #define _all(v) v.begin(), v.end()
  20. #define _memset(A, val) memset(A, val, sizeof A)
  21. #define __L p<<1, L, L+R>>1
  22. #define __R p<<1|1, (L+R>>1)+1, R
  23. #define LINE putc('\n', stdout)
  24. #define SPACE putc(' ' , stdout)
  25. #define TAB putc('\t', stdout)
  26. #define _out(_) printf("%i",_)
  27. #define __out(_,__) printf("%i %i",_,__)
  28. #define ___out(_,__,___) printf("%i %i %i",_,__,___)
  29. #define _outLL(_) printf("%I64d",_)
  30. #define __outLL(_,__) printf("%I64d %I64d",_,__)
  31. #define ___outLL(_,__,___) printf("%I64d %I64d %I64d",_,__,___)
  32. #define _outS(_) printf("%s",_)
  33. #define _outC(_) printf("%c",_)
  34. #define _in(_) scanf("%i", &_)
  35. #define __in(_,__) scanf("%i%i",&_,&__)
  36. #define ___in(_,__,___) scanf("%i%i%i",&_,&__,&___)
  37. #define _inLL(_) scanf("%I64d", &_)
  38. #define __inLL(_,__) scanf("%I64d%I64d",&_,&__)
  39. #define ___inLL(_,__,___) scanf("%I64d%I64d%I64d",&_,&__,&___)
  40. #define _inS(_) scanf("%s",_)
  41. #define __inS(_, __) scanf("%s%s",_,__)
  42. #define _inC(_) scanf("%c",&_)
  43. #define _YES printf("YES")
  44. #define _NO printf("NO")
  45. #define _Yes printf("Yes");
  46. #define _No printf("No");
  47. #define _yes printf("yes")
  48. #define _no printf("no")
  49. #define _for(i, n) for(int i=0 ; i<n ; i++)
  50. #define __for(i, j, n) for(int i=j ; i<n ; i++)
  51. #define FOR(i, condition) for(int i=0 ; condition ; i++)
  52. #define _rof(i, n) for(int i=n ; i-- ; )
  53. #define __rof(i, j, n) for(int i=n-1 ; i>=j ; i-- )
  54. #define rm_imp(d, p) (round(d*p)/p)
  55. #define __lcm(a, b) ((a*b)/__gcd(a,b))
  56. #define _log2(x) (31-__builtin_clz(x))
  57. #define INF 2e5
  58. #define Mod 1000000007
  59. #define MAXN 100100
  60. int n;
  61. int AdjMat[111][111];
  62. int visited[1111];
  63. int ans[1111][1111];
  64. void inline print_line(){
  65. printf("+"); _for(k, 2*n-1) _outC('-'); printf("+\n");
  66. }
  67. int dfs(int u, int exclude)
  68. {
  69. if(u==exclude) return 0;
  70. visited[u]=1;
  71. _for(i, n)
  72. if(AdjMat[u][i] && !visited[i]) dfs(i, exclude);
  73. }
  74. int main()
  75. {
  76. int T;
  77. _in(T);
  78. for(int t=1; t<=T ; t++)
  79. {
  80. _in(n);
  81. memset(ans, 0, sizeof ans);
  82. int tmp;
  83. _for(i, n)
  84. _for(j, n)
  85. _in(AdjMat[i][j]);
  86.  
  87. _for(ex, n)
  88. {
  89. memset(visited, 0, sizeof visited);
  90. dfs(0, ex);
  91. _for(i, n)
  92. if(!visited[i]) ans[ex][i]=1;
  93. }
  94. memset(visited, 0, sizeof visited);
  95. dfs(0, -1);
  96. _for(i, n)
  97. if(!visited[i])
  98. _for(j, n) ans[j][i]=0;
  99.  
  100. printf("Case %i:\n", t);
  101. print_line();
  102. _for(i, n){
  103. _for(j, n)
  104. _outC('|'), _outC(ans[i][j]?'Y':'N'); _outC('|');
  105. LINE; print_line();
  106. }
  107. }
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement