//pku3617 Best Cow Line #include <iostream> using namespace std; typedef long INT32; const INT32 MAX_N = 2000; char oldLine[MAX_N], newLine[MAX_N]; INT32 iNew = 0; enum RESULT { RE_HEAD, RE_TAIL, RE_BOTH }; void procEqual(INT32& iHead, INT32& iTail) { INT32 iNextHead = iHead+1, iNextTail = iTail-1; RESULT result = RE_HEAD; while (iNextTail > iNextHead) { if ( (oldLine[iNextHead] > oldLine[iHead]) && (oldLine[iNextTail] > oldLine[iHead]) ) { // result = RE_HEAD; break; } else if (oldLine[iNextHead] < oldLine[iNextTail]) { // result = RE_HEAD; // iNextHead++; break; } else if (oldLine[iNextTail] < oldLine[iNextHead]) { result = RE_TAIL; // iNextTail--; break; } else // if (oldLine[iNextHead] == oldLine[iNextTail]) { iNextHead++; iNextTail--; } } if (RE_HEAD==result) newLine[iNew++] = oldLine[iHead++]; else // if (RE_TAIL==result) newLine[iNew++] = oldLine[iTail--]; } int main() { INT32 iN, n; // input // //scanf("%ld/n", &iN); cin >> iN; for (n=0; n<iN; n++) { //scanf("%c/n", &oldLine[n]); cin >> oldLine[n]; } // input // INT32 iHead = 0, iTail = iN-1; while (iTail >= iHead) { if (oldLine[iHead] < oldLine[iTail]) newLine[iNew++] = oldLine[iHead++]; else if (oldLine[iTail] < oldLine[iHead]) newLine[iNew++] = oldLine[iTail--]; else // (oldLine[iHead] == oldLine[iTail]) procEqual(iHead, iTail); } for (n=0; n<iN; n++) { if (0!=n && 0==n%80) printf("/n"); printf("%c", newLine[n]); } printf("/n"); return 0; }