| ||||||||||
Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
哪位高手指点一下,是不是有什么BT数据,为什么总是TLE?原码如下:#include "stdio.h" #include "stdlib.h" #include "string.h" int isrc; int iarr[26],iarr1[1000],ipos[1000],icount; int iresultarr[5],iresnum,iposarr[5],iresultarr1[5],itypenum,itypetemp; int trueflg,tieflg,itest1,itest2; int cmp(const void *arg1,const void *arg2) { return *(int *)arg1-*(int *)arg2; } int dealA(int istart,int inum) { int i,iret; if(inum<iarr[istart]||(inum >((4-iresnum)*iarr[icount-1]))) /*found*/ { return 0; } for(i=istart;i<icount;i++) { if(itypenum==4&&tieflg==1) break; if(inum<iarr[i]) { return 0; } if((i!=istart)||(iresnum==0)) itypetemp++; iresnum++; if(inum==iarr[i]) /*found*/ { if(itypenum<itypetemp) { iresultarr[iresnum]=iarr[i]; iresultarr[0]=iresnum; memcpy(iresultarr1,iresultarr,sizeof(int)*5); itypenum=itypetemp; trueflg=1; tieflg=0; } else if(itypenum==itypetemp) { if(iresnum<iresultarr1[0]) { iresultarr[iresnum]=iarr[i]; iresultarr[0]=iresnum; memcpy(iresultarr1,iresultarr,sizeof(int)*5); itypenum=itypetemp; trueflg=1; tieflg=0; } else if(iresnum==iresultarr1[0]) { tieflg=1; trueflg=0; } } iresnum--; if((i!=istart)||(iresnum==0)) itypetemp--; continue; } if(iresnum<4) { iresultarr[iresnum]=iarr[i]; dealA(i,inum-iarr[i]); /*next*/ } iresnum--; if((i!=istart)||(iresnum==0)) itypetemp--; } return 0; } void deal() { int i,iret; itypenum=0; iresnum=0; tieflg=0; trueflg=0; itypetemp=0; iresultarr[0]=-1; dealA(0,isrc); if(trueflg==0&&tieflg==0) printf("%d ---- none\n",isrc); else if(trueflg==1) { printf("%d (%d): ",isrc,itypenum); for(i=1;i<=iresultarr1[0];i++) printf("%d ",iresultarr1[i]); printf("\n"); } else { printf("%d (%d): tie\n",isrc,itypenum); } } int main() { int i,k=0; while(1) { icount=0; while(scanf("%d",&iarr[icount])) { if(iarr[icount]==0) break; icount++; } qsort(iarr,icount,sizeof(int),cmp); while(scanf("%d",&isrc)) { if(isrc==0) break; if((((iarr[icount-1]*4)<isrc))||(isrc<iarr[0])) { printf("%d ---- none\n",isrc); continue; } deal(); } } } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator