Advertisement
juyana

aaaaaaaaaaa

Sep 21st, 2019
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.43 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) c[x]++;
  86. v.pb(m_p(x,y));
  87. }
  88. // sort(e.begin(),e.end());
  89. for(int i=1;i<=6;i++){
  90. if(a[i]%2==1){
  91. s.pb(i);
  92. }
  93. }
  94. // cout<<s.size()<<endl;
  95. if(s.size()==2){
  96. if(c[s[0]]>0){
  97. cout<<s[0]<<endl;
  98. for(int i=0;i<n;i++){
  99. x=v[i].ff,y=v[i].ss;
  100. if(x==s[0] && y==s[0]){
  101. pf("%d a\n",i+1); c[x]--;
  102. b[i]=1;r=y;
  103. break;
  104. }
  105. }
  106. }
  107. else{
  108. for(int i=0;i<n;i++){
  109. x=v[i].ff,y=v[i].ss;
  110. if(s[0]==x){
  111. b[i]=1;
  112. pf("%d a\n",i+1);
  113. r=y;
  114. break;
  115. }else if(s[0]==y){
  116. b[i]=1;
  117. pf("%d b\n",i+1);
  118. r=x;
  119. break;
  120. }
  121. }
  122. }
  123. if(c[s[1]]>0){
  124. for(int i=0;i<n;i++){
  125. x=v[i].ff,y=v[i].ss;
  126. if(x==s[1] && y==s[1] && b[i]==0){
  127. p=i+1;b[i]=1;c[x]--;
  128. q='a';break;
  129. }
  130. }
  131. }
  132. else{
  133.  
  134. for(int i=0;i<n;i++){
  135. x=v[i].ff,y=v[i].ss;
  136. if(x==s[1] && b[i]==0){
  137. p=i+1;b[i]=1;
  138. q='a';break;
  139. }else if(s[1]==y && b[i]==0){
  140. p=i+1;b[i]=1;
  141. q='b';break;
  142. }
  143. }
  144. }
  145. A:
  146. int i=0;
  147. if(c[r]>0){
  148. for( i=0;i<n;i++){
  149. x=v[i].ff,y=v[i].ss;
  150. if(x==r && y==r && b[i]==0){
  151. r=y;c[x]--;
  152. b[i]=1;
  153. pf("%d a\n",i+1);
  154. break;
  155. }
  156. }
  157. }
  158. else if(i==n || c[r]==0){
  159. for(int i=0;i<n;i++){
  160. x=v[i].ff,y=v[i].ss;
  161. if(b[i]==0 && r==x){
  162. b[i]=1;
  163. pf("%d a\n",i+1);
  164. r=y;
  165. break;
  166. }
  167. else if(r==y && b[i]==0){
  168. b[i]=1;
  169. pf("%d b\n",i+1);
  170. r=x;
  171. break;
  172. }
  173. }
  174. }
  175. for(int i=0;i<n;i++){
  176. if(b[i]==0) goto A;
  177. }
  178. pf("%d %c\n",p,q);
  179. }
  180. else if(s.size()==1){
  181. if(c[s[0]]>0){
  182. for(int i=0;i<n;i++){
  183. x=v[i].ff,y=v[i].ss;
  184. if(x==s[0] && y==s[0])
  185. pf("%d a",i+1);c[x]--;
  186. b[i]=1;
  187. break;
  188. }
  189. }
  190. else{
  191. for(int i=0;i<n;i++){
  192. x=v[i].ff,y=v[i].ss;
  193. if(s[0]==x){
  194. b[i]=1;
  195. pf("%d a\n",i+1);
  196. r=y;
  197. break;
  198. }else if(s[0]==y){
  199. b[i]=1;
  200. pf("%d b\n",i+1);
  201. r=x;
  202. break;
  203. }
  204. }
  205. }
  206. B:
  207. int i=0;
  208. if(c[r]>0){
  209. for(i=0;i<n;i++){
  210. x=v[i].ff,y=v[i].ss;
  211. if(x==r && y==r && b[i]==0){
  212. r=y;c[x]--;
  213. b[i]=1;
  214. pf("%d a\n",i+1);
  215. break;
  216. }
  217. }
  218. }
  219. else if(i==n || c[r]==0){
  220. for(int i=0;i<n;i++){
  221. x=v[i].ff,y=v[i].ss;
  222. if(b[i]==0 && r==x){
  223. b[i]=1;
  224. pf("%d a\n",i+1);
  225. r=y;
  226. break;
  227. }
  228. else if(r==y && b[i]==0){
  229. b[i]=1;
  230. pf("%d b\n",i+1);
  231. r=x;
  232. break;
  233. }
  234. }}
  235. for(int i=0;i<n;i++){
  236. if(b[i]==0) goto B;
  237. }
  238. }
  239. else{
  240. b[0]=1;
  241. pf("1 a\n");
  242. r=v[0].ss;
  243. C:
  244. int i=0;
  245. if(c[r]>0){
  246. for( i=0;i<n;i++){
  247. x=v[i].ff,y=v[i].ss;
  248. if(x==r && y==r && b[i]==0){
  249. r=y;c[x]--;
  250. b[i]=1;
  251. pf("%d a\n",i+1);
  252. break;
  253. }
  254. }
  255. }
  256. else if(i==n || c[r]==0){
  257. for(int i=0;i<n;i++){
  258. x=v[i].ff,y=v[i].ss;
  259. if(b[i]==0 && r==x){
  260. b[i]=1;
  261. pf("%d a\n",i+1);
  262. r=y;
  263. break;
  264. }
  265. else if(r==y && b[i]==0){
  266. b[i]=1;
  267. pf("%d b\n",i+1);
  268. r=x;
  269. break;
  270. }
  271. }
  272. }
  273. for(int i=0;i<n;i++){
  274. if(b[i]==0) goto C;
  275. }
  276.  
  277. }
  278. }
  279. /*
  280. 6
  281. 5 1
  282. 4 4
  283. 5 4
  284. 2 3
  285. 3 1
  286. 2 2
  287. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement