题意:给你一串完全匹配的括号,P数列代表这个位置的右括号的前面有几个左括号,让你求出对应的S数列,S数列的要求是与该位置的右括号匹配的左括号到这个位置有几个右括号,注意这是一串完全匹配的括号,所以该位置的左边到匹配的左括号有几个标志过的左括号,就对应有几个右括号
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int MAXN = 10005;
int main(){
int left[25],cas,t,n;
scanf("%d",&cas);
while (cas--){
memset(left,0,sizeof(left));
int flag = 1;
scanf("%d",&n);
while (n--){
scanf("%d",&t);
int i = t;
while (left[i])
i--;
if (flag){
printf("%d",t-i+1);
flag = 0;
}
else printf(" %d",t-i+1);
left[i] = 1;
}
printf("\n");
}
return 0;
}