#include #include #include #define MP make_pair #define X first #define Y second #define REP(a, b) for(int a=0; a<(b); a++) using namespace std; typedef pair p; p all[1000]; map poziom, pion; char kier(p p1, p p2) { if (p1.X==p2.X) { if (p1.Ycheck.X || (all[i].X==check.X && all[i].Y>check.Y)) check = all[i]; p akt = check; int ind = 0; int st = -1;; do { if (akt==start) st = ind; ret[ind++] = kier(akt, pion[akt]); akt = pion[akt]; if (akt==start) st = ind; ret[ind++] = kier(akt, poziom[akt]); akt = poziom[akt]; } while(akt!=check); if (d < 2) d--; for(int i = st; i < d; i++) printf("%c", ret[i]); for(int i = 0; i < st; i++) printf("%c", ret[i]); printf("\n"); } return 0; }