Advertisement
rafid_shad

J

Nov 19th, 2020
759
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 9.01 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. ///-----------------------------------compiler optimizer--------------------------------------------//
  5. //#pragma GCC optimize("Ofast")
  6. //#pragma GCC target("avx,avx2,fma")
  7. //#pragma GCC optimization("unroll-loops")
  8.  
  9. ///--------------------------------------data type--------------------------------------------------//
  10. typedef long long int lli;
  11.  
  12. ///----------------------------------------stack-----------------------------------------------------//
  13. typedef stack <int> STI;
  14. typedef stack <char> STC;
  15. typedef stack <string> STS;
  16.  
  17. ///----------------------------------------queue------------------------------------------------------//
  18. typedef queue <int> QI;
  19. typedef queue <char> QC;
  20. typedef queue <string> QS;
  21. typedef priority_queue <int> PQI;
  22.  
  23. ///---------------------------------------dequeue-----------------------------------------------------//
  24. typedef deque <int> DI;
  25. typedef deque <char> DC;
  26.  
  27. ///---------------------------------------set------------------------------------------------------//
  28. typedef set <int> SI;
  29. typedef set <string> SS;
  30. typedef set <char> SC;
  31. typedef multiset <int> MSI;
  32.  
  33. ///----------------------------------------map------------------------------------------------------//
  34. typedef map <int, int> MP;
  35. typedef map <string, int> MPSI;
  36. typedef map <char, int> MPCI;
  37.  
  38. ///----------------------------------------pair------------------------------------------------------//
  39. typedef pair <int, int> PII;
  40.  
  41. ///----------------------------------------vector------------------------------------------------------//
  42. typedef vector <int> VI;
  43. typedef vector <char> VC;
  44. typedef vector <string> VS;
  45. typedef vector <lli> VLLI;
  46.  
  47. ///----------------------------------------constant------------------------------------------//
  48.  
  49. #define MAX                 1E9 + 5
  50. #define MIN                 -1E9 - 5
  51. #define INF                 1E18 + 5
  52. #define MOD                 10000007
  53. #define py                  acos(-1.0)  /// 3.1415926535897932
  54.  
  55. ///-------------------------------------------------------------------------------//
  56. #define pp1(A)              printf("%d\n", A)
  57. #define ppl(A)              printf("%lld\n", A)
  58. #define pp2(A,B)            printf("%d %d\n", A, B)
  59. #define pp3(A,B,C)          printf("%d %d %d\n", A, B, C)
  60.  
  61. #define ss1(A)              scanf("%d", &A)
  62. #define ssl(A)              scanf("%lld", &A)
  63. #define ss2(A,B)            scanf("%d %d", &A, &B)
  64. #define ss3(A,B,C)          scanf("%d %d %d", &A, &B, &C)
  65.  
  66. ///---------------------------------------------------------------------------//
  67. #define fastIO              cin.tie(0), cout.tie(0)
  68. #define ddd(args...)        do { cerr << #args << "-> " ;  show(args); } while(0); cerr<< endl ;
  69. #define TS                  template < typename T >
  70. #define TP                  template < typename F, typename S >
  71. #define TM                  template<typename T1, typename... T2>
  72.  
  73. #define pf                  push_front
  74. #define pb                  push_back
  75. #define popb                pop_back
  76. #define popf                pop_front
  77.  
  78. #define ub                  upper_bound
  79. #define lb                  lower_bound
  80.  
  81. #define itr                 iterator
  82. #define ritr                reverse_iterator
  83.  
  84. #define mk                  make_pair
  85. #define ff                  first
  86. #define ss                  second
  87.  
  88. ///---------------------------------------------------------------------------//
  89. #define endl                "\n"
  90. #define gap                 " "
  91. #define END                 return 0
  92. #define line                printf( "\n")
  93. #define yes                 printf( "YES\n")
  94. #define no                  printf( "NO\n")
  95.  
  96. #define Before              printf( "Before  \n")
  97. #define After               printf( "After  \n")
  98.  
  99. #define enter1              printf( "Entered 1\n")
  100. #define enter2              printf( "Entered 2\n")
  101. #define enter3              printf( "Entered 3\n")
  102.  
  103. #define Case(k,n)           printf( "Case %d: %d\n", k, n)
  104. #define Casell(k,n)         printf( "Case %lld: %lld\n", k, n)
  105.  
  106. ///-----------------------------------------------------------------------------//
  107. #define sq(a)               (a) * (a)
  108. #define SZ(a)               (int) a.size()
  109. #define all(a)              (a).begin(), (a).end()
  110. #define rall(a)             (a).rbegin(), (a).rend()
  111.  
  112. #define mem(x, y)           memset(x, y, sizeof(x))
  113. #define unq(v)              v.erase( unique( all(v)), v.end())
  114. #define rev(v)              reverse( all(v))
  115. #define sortV(v)            sort( all(v))
  116. #define sortA(a,n)          sort(a, a+n)
  117.  
  118. #define to_upper(s)         transform( s.begin(), s.end(), s.begin(), ::toupper)
  119. #define to_lower(s)         transform( s.begin(), s.end(), s.begin(), ::tolower)
  120. #define to_int(s)           stoi(s)
  121.  
  122. ///--------------------------------------------------------------------------------//
  123. #define Erase(V,I)          (V).erase((V).begin()+I)
  124. #define Insert(V,I,M)       (V).insert((V).begin()+I,M)
  125.  
  126. #define read()              freopen("input.txt", "r", stdin)
  127. #define write()             freopen("output.txt", "w", stdout)
  128.  
  129. ///-------------------------------------------------------------------------------------------------------------------------------//
  130. #define loop(i, n)          for(int i = 0; i < n; i++)
  131. #define loops(i, x, n)      for(int i = x; i < n; i++)
  132. #define loopr(i, n)         for(int i = n-1; i >= 0; i--)
  133. #define loopt(i, n)         for(int i = 1; i <= n; i++)
  134.  
  135. #define autoo(s)            for(auto it = s.begin(); it != s.end(); it++)
  136.  
  137. #define vin(V, N)           for(int i = 0; i < N; i++){ int X; ss1(X); V.pb(X); }
  138. #define vinll(V, N)         for(int i = 0; i < N; i++){ lli X; ssl(X); V.pb(X); }
  139.  
  140. #define ain(A, N)           for(int i = 0; i < N; i++){ ss1(A[i]); }
  141. #define ainll(A, N)         for(int i = 0; i < N; i++){ ssl(A[i]); }
  142.  
  143. #define aout(A, N)          for(int i = 0; i < N; i++){ printf("%d", A[i]); if (i < N-1) printf(" "); else printf("\n"); }
  144. #define vout(v)             for(int i = 0; i < v.size(); i++) { printf("%d", v[i]); if(i < v.size() - 1) printf(" "); else printf("\n");}
  145.  
  146. ///--------------------------------------------------Debugging-----------------------------------------------------------------//
  147.  
  148. TS void show (const T& v) { cerr << v << ' ' ;}
  149.  
  150. TM void show (const T1& first, const T2&... rest){ show(first); show(rest...); }
  151.  
  152. TP ostream& operator << (ostream& os, const pair<F,S>& p){return os<<"("<< p.ff << ", " << p.ss <<")" ;}
  153.  
  154. TS ostream& operator << (ostream& os, const vector<T>& v){os << "{"; typename vector< T >::const_iterator it;
  155.     for(it = v.begin(); it != v.end(); it++) {if( it != v.begin() )os << ", "; os<<*it; } return os<<"}";}
  156.  
  157. TS ostream& operator << (ostream& os, const set<T>& v){os << "["; typename set<T>::const_iterator it;
  158.     for(it = v.begin(); it != v.end(); it++){ if(it != v.begin())os<<", ";os <<*it; } return os <<"]"; }
  159.  
  160. TS ostream& operator << (ostream& os, const multiset<T>& v){os << "["; typename multiset<T>::const_iterator it;
  161.     for(it = v.begin(); it != v.end(); it++){ if(it != v.begin())os<<", ";os <<*it; } return os <<"]"; }
  162.  
  163. TP ostream& operator<<(ostream& os,const map<F,S>& v){os<<"["; typename map<F,S>::const_iterator it;
  164.     for(it = v.begin(); it != v.end(); it++){if(it != v.begin())os << ", "; os << it->ff <<" = " << it->ss; } return os<<"]";}
  165.  
  166. //-------------------------------------------------------------------------------------------------------------------------------//
  167.  
  168. lli lcm(lli a, lli b)
  169. {
  170.     return a * (b / __gcd(a, b));
  171. }
  172.  
  173. ///----------------------graph moves----------------*/
  174. int dr[] = {+1, -1, +0, +0};
  175. int dc[] = {+0, +0, +1, -1};
  176.  
  177. ///----------------------kings moves-----------------*/
  178. int X[] = {+0, +0, +1, -1, -1, +1, -1, +1};
  179. int Y[] = {-1, +1, +0, +0, +1, +1, -1, -1};
  180.  
  181. ///----------------------knights moves----------------*/
  182. int KX[] = {-2, -2, -1, -1,  1,  1,  2,  2};
  183. int KY[] = {-1,  1, -2,  2, -2,  2, -1,  1};
  184.  
  185. ///-----------------------------------template------------------------------------------------//
  186. const int N = 100005;
  187.  
  188. VI graph[N];
  189. int vis[N];
  190.  
  191. void dfs(int v, int ch){
  192.  
  193.     vis[v] = 1;
  194.     for(auto u : graph[v]){
  195.  
  196.         if(vis[u]) continue;
  197.         if(!ch) cout << v << " " << u << endl;
  198.         else cout << u << " " << v << endl;
  199.         dfs(u, ch^1);
  200.     }
  201. }
  202. int main()
  203. {
  204.     #ifndef ONLINE_JUDGE
  205.    // read();
  206.     #endif // ONLINE_JUDGE
  207.    // fastIO;
  208.    int t;
  209.    cin >> t;
  210.    int ts = 0;
  211.    while(t--){
  212.         int n;
  213.         cin >> n;
  214.         loop(i, n+1){
  215.             graph[i].clear();
  216.             vis[i] = 0;
  217.         }
  218.         vector< pair <int, int > > v;
  219.         int src = 0;
  220.         loop(i, n-1){
  221.             int a, b;
  222.             cin >> a >> b;
  223.             if(a == b){
  224.                 v.pb({a, b});
  225.             }
  226.             if(!i) src = a;
  227.  
  228.             graph[a].pb(b);
  229.             graph[b].pb(a);
  230.         }
  231.         cout << "Case " << ++ts << ":" << endl;
  232.         dfs(src, 0);
  233.         loop(i, v.size()){
  234.             cout << v[i].ff << gap << v[i].ss << endl;
  235.         }
  236.    }
  237.  
  238.  
  239. }
  240.  
  241.  
  242.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement