C语言
解法
#include <stdio.h>

int main()
{
int inputArray[2500] = { 0 };
int i = 0;
int j = 0;
int l = 0;

while(scanf("%d", &inputArray[i]) != EOF) {
    i++;
}
int outputArray[1500] = { 0 };
outputArray[0] = inputArray[1];

for (i = 2; i < 2500; i+=2) {
    if (inputArray[i] == 0) {
        break;
    }

    for (j = 0; j < inputArray[0]; j++) {
        if (inputArray[i + 1] == 0) {
            //删除outputArray里值为inputArray[i + 1]的成员;
            if (inputArray[i] == outputArray[j]) {
                l++;
                for (int m = j; m < inputArray[0] - 1; m++) {
                    outputArray[m] = outputArray[m + 1];
                }
                j--;
            }
        } else {
            if (inputArray[i + 1] == outputArray[j]) {
                for (int k = inputArray[0] - 1; k > j; k--) {
                    outputArray[k + 1] = outputArray[k];
                }
                outputArray[j + 1] = inputArray[i];
            } 
        }
    }
}

for (i = 0; i < inputArray[0] - l; i++) {
    printf("%d ", outputArray[i]);
}

return 0;

}