Advertisement
juyana

fjkrf

Sep 21st, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.40 KB | None | 0 0
  1. /* BISMILLAHIR RAHMANIR RAHIM */
  2.  
  3. #include<bits/stdc++.h>
  4. #include<cstdio>
  5. #include<sstream>
  6. #include<cstdlib>
  7. #include<cctype>
  8. #include<cmath>
  9. #include<algorithm>
  10. #include<set>
  11. #include<queue>
  12. #include<stack>
  13. #include<list>
  14. #include<iostream>
  15. #include<fstream>
  16. #include<numeric>
  17. #include<string>
  18. #include<vector>
  19. #include<cstring>
  20. #include<map>
  21. #include<iterator>
  22.  
  23. using namespace std;
  24.  
  25. #define READ freopen("in.txt", "r", stdin)
  26. #define WRITE freopen("out.txt", "w", stdout)
  27. #define ll int long long
  28. #define ull unsigned long long
  29. #define ld long double
  30. #define lld long long double
  31. #define pi acos(-1)
  32. #define pb push_back
  33. #define pff push_front
  34. #define pbk pop_back
  35. #define pfk pop_front
  36. #define m_p make_pair
  37. #define gcd(a,b) __gcd(a,b)
  38. #define lcm(a, b) ((a)*((b)/gcd(a,b)))
  39. #define INF 1000000000
  40. #define M 1000000000+7
  41. #define dist(ax,ay,bx,by) ((ax-bx)*(ax-bx)+(ay-by)*(ay-by))
  42. #define sf(a) scanf("%d",&a)
  43. #define sfl(a) scanf("%lld",&a)
  44. #define sff(a,b) scanf("%d %d",&a,&b)
  45. #define sffl(a,b) scanf("%lld %lld",&a,&b)
  46. #define sfff(a,b,c) scanf("%d %d %d",&a,&b,&c)
  47. #define sfffl(a,b,c) scanf("%lld %lld %lld",&a,&b,&c)
  48. #define loop(i,n) for(ll i=0;i<n;i++)
  49. #define loop1(i,n) for(ll i=1;i<=n;i++)
  50. #define pf printf
  51. #define ff first
  52. #define ss second
  53. #define SZ(a) (int)a.size()
  54. #define TEST_CASE(t) for(int z=1;z<=t;z++)
  55. #define PRINT_CASE printf("Case %d: ",z)
  56.  
  57. /*----------------------Graph Moves----------------*/
  58. //const int fx[]={+1,-1,+0,+0};
  59. //const int fy[]={+0,+0,+1,-1};
  60. //const int fx[]={+0,+0,+1,-1,-1,+1,-1,+1}; // Kings Move
  61. //const int fy[]={-1,+1,+0,+0,+1,+1,-1,-1}; // Kings Move
  62. //const int fx[]={-2, -2, -1, -1, 1, 1, 2, 2}; // Knights Move
  63. //const int fy[]={-1, 1, -2, 2, -2, 2, -1, 1}; // Knights Move
  64. /*------------------------------------------------*/
  65.  
  66. /*-----------------------Bitmask------------------*/
  67. //int Set(int N,int pos){return N=N | (1<<pos);}
  68. //int reset(int N,int pos){return N= N & ~(1<<pos);}
  69. //bool check(int N,int pos){return (bool)(N & (1<<pos));}
  70. /*------------------------------------------------*/
  71.  
  72. int a[10],b[10],c[10];
  73. vector<pair<int,int> >v;
  74. vector<int>s,e;
  75. //vector<pair<int,char> >an;
  76. int main()
  77. {
  78. int n,x,y,p,r;
  79. char q;
  80. sf(n);
  81. for(int i=0;i<n;i++){
  82. sff(x,y);
  83. a[x]++;
  84. a[y]++;
  85. if(x==y) e.pb(x);
  86. v.pb(m_p(x,y));
  87. }
  88. for(int i=1;i<=6;i++){
  89. if(a[i]%2==1){
  90. s.pb(i);
  91. for(int j=0;j<e.size();j++){
  92. if(e[j]==i){
  93. c[i]=1;
  94. }
  95. }
  96. }
  97. }
  98. // cout<<s.size()<<endl;
  99. if(s.size()==2){
  100. if(c[s[0]]==1){
  101. cout<<s[0]<<endl;
  102. for(int i=0;i<n;i++){
  103. x=v[i].ff,y=v[i].ss;
  104. if(x==s[0] && y==s[0]){
  105. pf("%d a\n",i+1);
  106. b[i]=1;r=y;
  107. break;
  108. }
  109. }
  110. }
  111. else{
  112. for(int i=0;i<n;i++){
  113. x=v[i].ff,y=v[i].ss;
  114. if(s[0]==x){
  115. b[i]=1;
  116. pf("%d a\n",i+1);
  117. r=y;
  118. break;
  119. }else if(s[0]==y){
  120. b[i]=1;
  121. pf("%d b\n",i+1);
  122. r=x;
  123. break;
  124. }
  125. }
  126. }
  127. if(c[s[1]]==1){
  128. for(int i=0;i<n;i++){
  129. x=v[i].ff,y=v[i].ss;
  130. if(x==s[1] && y==s[1]){
  131. p=i+1;b[i]=1;
  132. q='a';break;
  133. }
  134. }
  135. }
  136. else{
  137.  
  138. for(int i=0;i<n;i++){
  139. x=v[i].ff,y=v[i].ss;
  140. if(x==s[1] && b[i]==0){
  141. p=i+1;b[i]=1;
  142. q='a';break;
  143. }else if(s[1]==y && b[i]==0){
  144. p=i+1;b[i]=1;
  145. q='b';break;
  146. }
  147. }
  148. }
  149. A:
  150. for(int i=0;i<n;i++){
  151. x=v[i].ff,y=v[i].ss;
  152. if(b[i]==0 && r==x){
  153. b[i]=1;
  154. pf("%d a\n",i+1);
  155. r=y;
  156. break;
  157. }
  158. else if(r==y && b[i]==0){
  159. b[i]=1;
  160. pf("%d b\n",i+1);
  161. r=x;
  162. break;
  163. }
  164. }
  165. for(int i=0;i<n;i++){
  166. if(b[i]==0) goto A;
  167. }
  168. pf("%d %c\n",p,q);
  169. }
  170. else if(s.size()==1){
  171. if(c[s[0]]==1){
  172. for(int i=0;i<n;i++){
  173. x=v[i].ff,y=v[i].ss;
  174. if(x==s[0] && y==s[0])
  175. pf("%d a",i+1);
  176. b[i]=1;
  177. break;
  178. }
  179. }
  180. else{
  181. for(int i=0;i<n;i++){
  182. x=v[i].ff,y=v[i].ss;
  183. if(s[0]==x){
  184. b[i]=1;
  185. pf("%d a\n",i+1);
  186. r=y;
  187. break;
  188. }else if(s[0]==y){
  189. b[i]=1;
  190. pf("%d b\n",i+1);
  191. r=x;
  192. break;
  193. }
  194. }
  195. }
  196. B:
  197. for(int i=0;i<n;i++){
  198. x=v[i].ff,y=v[i].ss;
  199. if(b[i]==0 && r==x){
  200. b[i]=1;
  201. pf("%d a\n",i+1);
  202. r=y;
  203. break;
  204. }
  205. else if(r==y && b[i]==0){
  206. b[i]=1;
  207. pf("%d b\n",i+1);
  208. r=x;
  209. break;
  210. }
  211. }
  212. for(int i=0;i<n;i++){
  213. if(b[i]==0) goto B;
  214. }
  215. }
  216. else{
  217. b[0]=1;
  218. pf("1 a\n");
  219. r=v[0].ss;
  220. C:
  221. for(int i=0;i<n;i++){
  222. x=v[i].ff,y=v[i].ss;
  223. if(b[i]==0 && r==x){
  224. b[i]=1;
  225. pf("%d a\n",i+1);
  226. r=y;
  227. break;
  228. }
  229. else if(r==y && b[i]==0){
  230. b[i]=1;
  231. pf("%d b\n",i+1);
  232. r=x;
  233. break;
  234. }
  235. }
  236. for(int i=0;i<n;i++){
  237. if(b[i]==0) goto C;
  238. }
  239.  
  240. }
  241. }
  242. /*
  243. 6
  244. 5 1
  245. 4 4
  246. 5 4
  247. 2 3
  248. 3 1
  249. 2 2
  250. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement