http://acm.hdu.edu.cn/showproblem.php?pid=1361
设想可由p->w 好像挺繁琐,,,逻辑混乱
设想可由p->w 好像挺繁琐,,,逻辑混乱
现 p->s->w 模拟
#include<stdio.h>
#include<string.h>
int main()
{
int N;
int str;
scanf("%d",&N);
int p[21];
int s[500];
int w[21];
/*'(' 1 0')'*/
while(N--)
{
int n;
scanf("%d",&n);
int i,j,k;
for(i=0;i<n;i++)
{
scanf("%d",&p[i]);
}
int index = 0;
for(i=0;i<p[0];i++)
{
s[index++] = 1;
}
for(i=0;i<n;i++)
{
for(j=0;j<p[i]-p[i-1];j++)
{
s[index++]= 1;
}
s[index++] = 0;
}
int use[50];
memset(w,0,sizeof(w));
k=0;
for(i=0;i<index;i++)
{
if(!s[i])
{
j = i;
while(!s[--j]);
s[j] = 0;
int f = 1+ i-j;
w[k++] = f/2;
}
}
for(i=0;i<n-1;i++)
{
printf("%d ",w[i]);
}
printf("%d\n",w[n-1]);
}
return 0;
}