/* ID: espr1t TASK: KEYWORDS: */ #include #include #include #include using namespace std; FILE *in; FILE *out; const int MAX = 10004; const int LEN = 10000; int n; char a[MAX]; int main(void) { in = stdin; out = stdout; in = fopen("code.in", "rt"); out = fopen("code.out", "wt"); fscanf(in, "%d %s", &n, a); string ans; int left = 0, right = n - 1; while (left <= right) { if (a[left] < a[right]) { ans += a[left++]; } else if (a[right] < a[left]) { ans += a[right--]; } else { string sLeft, sRight; for (int i = 0; i < min(LEN, right - left + 1); i++) sLeft += a[left + i]; for (int i = 0; i < min(LEN, right - left + 1); i++) sRight += a[right - i]; if (sLeft < sRight) ans += a[left++]; else ans += a[right--]; } } fprintf(out, "%s\n", ans.c_str()); return 0; }