範例程式碼 uva245
//uva245
#include <iostream>
#include <list>
#include <algorithm>
#include <cctype>
#include <string>
#include <iterator>
using namespace std;
list<string> dict;
int main() {
char buffer[51];
while(buffer[0] = cin.get()) {
if(buffer[0] == '0')break; // END
if(isdigit(buffer[0])) {
cin.putback(buffer[0]);
int num;
cin >> num;
std::list<string>::iterator it = dict.begin();
advance(it,num-1);
cout << *it ;
dict.push_front(*it);
dict.erase(it);
continue;
}
if(!isalpha(buffer[0])) { // non-Alpha
cout << buffer[0];
continue;
}
int i = 1;
for(; isalpha(cin.peek()); ++i) {
cin.get(buffer[i]);
}
buffer[i] = '\0';
cout << buffer;
dict.push_front(buffer);
}
return 0;
}