Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* BISMILLAHIR RAHMANIR RAHIM */
- #include<bits/stdc++.h>
- #include<cstdio>
- #include<sstream>
- #include<cstdlib>
- #include<cctype>
- #include<cmath>
- #include<algorithm>
- #include<set>
- #include<queue>
- #include<stack>
- #include<list>
- #include<iostream>
- #include<fstream>
- #include<numeric>
- #include<string>
- #include<vector>
- #include<cstring>
- #include<map>
- #include<iterator>
- using namespace std;
- #define READ freopen("in.txt", "r", stdin)
- #define WRITE freopen("out.txt", "w", stdout)
- #define ll int long long
- #define ull unsigned long long
- #define ld long double
- #define lld long long double
- #define pi acos(-1)
- #define pb push_back
- #define pff push_front
- #define pbk pop_back
- #define pfk pop_front
- #define m_p make_pair
- #define gcd(a,b) __gcd(a,b)
- #define lcm(a, b) ((a)*((b)/gcd(a,b)))
- #define INF 1000000000
- #define M 1000000000+7
- #define dist(ax,ay,bx,by) ((ax-bx)*(ax-bx)+(ay-by)*(ay-by))
- #define sf(a) scanf("%d",&a)
- #define sfl(a) scanf("%lld",&a)
- #define sff(a,b) scanf("%d %d",&a,&b)
- #define sffl(a,b) scanf("%lld %lld",&a,&b)
- #define sfff(a,b,c) scanf("%d %d %d",&a,&b,&c)
- #define sfffl(a,b,c) scanf("%lld %lld %lld",&a,&b,&c)
- #define loop(i,n) for(ll i=0;i<n;i++)
- #define loop1(i,n) for(ll i=1;i<=n;i++)
- #define pf printf
- #define ff first
- #define ss second
- #define SZ(a) (int)a.size()
- #define TEST_CASE(t) for(int z=1;z<=t;z++)
- #define PRINT_CASE printf("Case %d: ",z)
- /*----------------------Graph Moves----------------*/
- //const int fx[]={+1,-1,+0,+0};
- //const int fy[]={+0,+0,+1,-1};
- //const int fx[]={+0,+0,+1,-1,-1,+1,-1,+1}; // Kings Move
- //const int fy[]={-1,+1,+0,+0,+1,+1,-1,-1}; // Kings Move
- //const int fx[]={-2, -2, -1, -1, 1, 1, 2, 2}; // Knights Move
- //const int fy[]={-1, 1, -2, 2, -2, 2, -1, 1}; // Knights Move
- /*------------------------------------------------*/
- /*-----------------------Bitmask------------------*/
- //int Set(int N,int pos){return N=N | (1<<pos);}
- //int reset(int N,int pos){return N= N & ~(1<<pos);}
- //bool check(int N,int pos){return (bool)(N & (1<<pos));}
- /*------------------------------------------------*/
- int a[10],b[10],c[10];
- vector<pair<int,int> >v;
- vector<int>s,e;
- //vector<pair<int,char> >an;
- int main()
- {
- int n,x,y,p,r;
- char q;
- sf(n);
- for(int i=0;i<n;i++){
- sff(x,y);
- a[x]++;
- a[y]++;
- if(x==y) e.pb(x);
- v.pb(m_p(x,y));
- }
- for(int i=1;i<=6;i++){
- if(a[i]%2==1){
- s.pb(i);
- for(int j=0;j<e.size();j++){
- if(e[j]==i){
- c[i]=1;
- }
- }
- }
- }
- // cout<<s.size()<<endl;
- if(s.size()==2){
- if(c[s[0]]==1){
- cout<<s[0]<<endl;
- for(int i=0;i<n;i++){
- x=v[i].ff,y=v[i].ss;
- if(x==s[0] && y==s[0]){
- pf("%d a\n",i+1);
- b[i]=1;r=y;
- break;
- }
- }
- }
- else{
- for(int i=0;i<n;i++){
- x=v[i].ff,y=v[i].ss;
- if(s[0]==x){
- b[i]=1;
- pf("%d a\n",i+1);
- r=y;
- break;
- }else if(s[0]==y){
- b[i]=1;
- pf("%d b\n",i+1);
- r=x;
- break;
- }
- }
- }
- if(c[s[1]]==1){
- for(int i=0;i<n;i++){
- x=v[i].ff,y=v[i].ss;
- if(x==s[1] && y==s[1]){
- p=i+1;b[i]=1;
- q='a';break;
- }
- }
- }
- else{
- for(int i=0;i<n;i++){
- x=v[i].ff,y=v[i].ss;
- if(x==s[1] && b[i]==0){
- p=i+1;b[i]=1;
- q='a';break;
- }else if(s[1]==y && b[i]==0){
- p=i+1;b[i]=1;
- q='b';break;
- }
- }
- }
- A:
- for(int i=0;i<n;i++){
- x=v[i].ff,y=v[i].ss;
- if(b[i]==0 && r==x){
- b[i]=1;
- pf("%d a\n",i+1);
- r=y;
- break;
- }
- else if(r==y && b[i]==0){
- b[i]=1;
- pf("%d b\n",i+1);
- r=x;
- break;
- }
- }
- for(int i=0;i<n;i++){
- if(b[i]==0) goto A;
- }
- pf("%d %c\n",p,q);
- }
- else if(s.size()==1){
- if(c[s[0]]==1){
- for(int i=0;i<n;i++){
- x=v[i].ff,y=v[i].ss;
- if(x==s[0] && y==s[0])
- pf("%d a",i+1);
- b[i]=1;
- break;
- }
- }
- else{
- for(int i=0;i<n;i++){
- x=v[i].ff,y=v[i].ss;
- if(s[0]==x){
- b[i]=1;
- pf("%d a\n",i+1);
- r=y;
- break;
- }else if(s[0]==y){
- b[i]=1;
- pf("%d b\n",i+1);
- r=x;
- break;
- }
- }
- }
- B:
- for(int i=0;i<n;i++){
- x=v[i].ff,y=v[i].ss;
- if(b[i]==0 && r==x){
- b[i]=1;
- pf("%d a\n",i+1);
- r=y;
- break;
- }
- else if(r==y && b[i]==0){
- b[i]=1;
- pf("%d b\n",i+1);
- r=x;
- break;
- }
- }
- for(int i=0;i<n;i++){
- if(b[i]==0) goto B;
- }
- }
- else{
- b[0]=1;
- pf("1 a\n");
- r=v[0].ss;
- C:
- for(int i=0;i<n;i++){
- x=v[i].ff,y=v[i].ss;
- if(b[i]==0 && r==x){
- b[i]=1;
- pf("%d a\n",i+1);
- r=y;
- break;
- }
- else if(r==y && b[i]==0){
- b[i]=1;
- pf("%d b\n",i+1);
- r=x;
- break;
- }
- }
- for(int i=0;i<n;i++){
- if(b[i]==0) goto C;
- }
- }
- }
- /*
- 6
- 5 1
- 4 4
- 5 4
- 2 3
- 3 1
- 2 2
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement