http://acm.pku.edu.cn/JudgeOnline/problem?id=1068

Код:
#include <stdio.h>

int main()
{
    int T,n,ri,old,a,i,j,p,cnt;
    char r[45];

    scanf("%d", &T);
    while(T--) {
        ri=old=0;
        scanf("%d", &n);
        while(n--) {
            scanf("%d", &a);
            for(i=a-old;i>0;i--) r[ri++]='(';
            r[ri++]=')';
            old=a;
        }
        r[ri]=0;
        for(i=0;r[i];i++) {
            if(r[i]==')') {
                cnt=0; p=1;
                for(j=i-1;p;j--) {
                    if(r[j]==')') p++;
                    else { p--; cnt++; }
                }

                printf("%d ", cnt);
            }
        }
        puts("");
    }

    return 0;
}