AOJ_0130 Train
問題
解法
車両の移動を追っていって、今までにない車両の位置にきたら追加していけばいい。
#include <cstdio> #include <algorithm> #include <cstring> using namespace std; char str[1025]; char train[30]; int n; int main(){ char c; scanf("%d", &n); for(int i = 0; i < n; i++){ int train_len = 1; int p = 0; scanf("%c", &c); scanf("%s", str); train[p] = str[0]; for(int i = 1; i < strlen(str); i++){ if(str[i] == '-') p++; else p--; i+=2; c = str[i]; if(p < 0){ for(int i = train_len; i > 0; i--) train[i] = train[i-1]; p = 0; train_len++; }else if(train_len == p){ train_len++; } train[p] = c; } train[train_len] = 0; printf("%s\n", train); } return 0; }