1 条题解
-
0
C :
#include<stdio.h> #include<string.h> int main() { int i,j,p[25]={0},w[25],t,n,k,c,x; while(scanf("%d",&t)==1) { for(;t;t--) { scanf("%d",&n); x=0;c=0; memset(p,0,sizeof(p)); memset(w,0,sizeof(w)); for(i=0;i<n;i++) { scanf("%d",&k); if(c==k)p[++x]=2; else{ while(c<k) if(p[x]==0){p[x++]=1;c++;} else if(p[x]==1){c++;x++;} else x++; p[x]=2; } } for(i=0;i<=x;i++) { if(p[i]==2) { for(j=i-1,c=0;j>=0;j--) { if(p[j]==2)c++; if(p[j]==1&&w[j]==0){ if(i==x)printf("%d",c+1); else printf("%d ",c+1); w[j]=1;break;} if(j==0)printf("0 "); } } } printf("\n"); } } return 0; }
C++ :
#include <stdio.h> int main(){ char s[150],*p,*q; int a,b; int rp,lp,lmp,is_match; int t,n,i,j; scanf("%d",&t); while(t--){ scanf("%d",&n); a=0,b=0; p=&s[0]; j=n; while(j--){ scanf("%d",&b); i=b-a; while(i--) *p++='('; *p++=')'; a=b; } *p='\0'; p=&s[0]; while(*p++){ rp=0,lp=0; is_match=0; if(*p==')'){ q=p-1; while(*q=='('||*q==')'){ if(*q==')'){ rp++; } else if(*q=='('){ if(!rp) is_match=1; else rp--; lp++; } if(is_match){ printf("%d",lp); break; } q--; } if(!is_match) printf("%d",0); if(--n>0) printf(" "); } } if(t) printf("\n"); } return 0; }
- 1
信息
- ID
- 3586
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者