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;
}