//ACM 1068 Parencodings
#include <stdio.h>
int main()
{
int m[50],n,i,j,p[50][50],w[50][50],sign[50][50];
int a,b=0,c,k;
char term[50][50];
scanf("%d",&n);
for(i=1;i<=n;i++)
{
p[i][0]=0;
scanf("%d",&m[i]);
for(j=1;j<=m[i];j++)
scanf("%d",&p[i][j]);
}
for(i=1;i<=n;i++)
{
b=1;
for(j=1;j<=m[i];j++){
a=p[i][j]-p[i][j-1];
if(a!=0)
{
for(c=1;c<=a;c++)
term[i][b++]='(';
term[i][b++]=')';
}
else
term[i][b++]=')';
}
}
for(i=1;i<=n;i++)
for(j=1;j<=2*m[i];j++){
w[i][j]=0;
sign[i][j]=0;
if(term[i][j]==')'){
for(k=j;!(sign[i][k]==0&&term[i][k]=='(');k--){
if(term[i][k]==')' )
w[i][j]++;
}
sign[i][k]=1;
}
}
for(i=1;i<=n;i++){
for(j=1;j<=2*m[i];j++)
if(term[i][j]==')')
printf("%d ",w[i][j]);
printf("/n");
}
return 0;
}
acm 1068 Parencodings
最新推荐文章于 2018-02-28 18:18:08 发布