水题,我却坑了好多时间,。。。
#include <stdio.h> #include <string.h> #include <stdlib.h> int main() { char stc[1000]; int a[1000]; int t,n,top; scanf("%d",&t); while(t--) { scanf("%d",&n); top=0; a[0]=0; for(int i=1; i<=n; i++) { scanf("%d",&a[i]); for(int j=a[i-1]; j<a[i]; j++) { stc[top++]='('; } stc[top++]=')'; } int b[1001]; int tt=0; memset(b,0,sizeof(b)); for(int i=0; i<top; i++) { if(stc[i]==')') { for(int j=i-1; j>=0; j--) { if(stc[j]!='.') b[tt]++; if(stc[j]=='(') { stc[j]='.'; break; } } tt++; } } for(int i=0; i<tt; i++) { if(i==0) printf("%d",b[i]); else printf(" %d",b[i]); } printf(" "); /*for(int i=0;i<top;i++) printf("%c",stc[i]); printf(" "); */ } return 0; }