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 |
ac了~~~~~~In Reply To:找不出那里错了,大家帮个忙吧 Posted by:TN at 2005-01-31 13:19:37 > #include <stdio.h> > #include <memory.h> > typedef struct mytype > { > int id,num,d; > }; > mytype a[26],heap[26]; > int t[26],way[26],best,ans[26]; > int i,j,m,n,k,h,heaplen,tot,test; > void swap(mytype &a1,mytype &a2) > { > mytype tmp; > tmp=a1;a1=a2;a2=tmp; > } > bool cmp(int s1,int s2) > { > if (heap[s1].num>heap[s2].num || (heap[s1].num==heap[s2].num && heap[s1].id<heap[s2].id)) > return true; > else > return false; > } > void adjust(int node) > { > if (node*2<=heaplen) > if (cmp(node*2,node)) > if (node*2+1<=heaplen && cmp(node*2+1,node*2)) > { > swap(heap[node],heap[node*2+1]); > adjust(node*2+1); > } > else > { > swap(heap[node],heap[node*2]); > adjust(node*2); > } > else > if (node*2+1<=heaplen && cmp(node*2+1,node)) > { > swap(heap[node],heap[node*2+1]); > adjust(node*2+1); > } > } > > int main() > { > test=0; > while ((scanf("%d",&n))!=EOF) > { > if (n==0) return 0; > test++; > scanf("%d",&h); > h*=12; > for (i=1;i<=n;i++) > { > scanf("%d",&a[i].num); > a[i].id=i; > } > for (i=1;i<=n;i++) scanf("%d",&a[i].d); > for (i=1;i<n;i++) scanf("%d",&t[i]);t[0]=0; > for (k=0;k<n;k++) > { > h=h-t[k];heaplen=k+1; > for (i=1;i<=k+1;i++) heap[i]=a[i]; > for (i=heaplen/2;i>=1;i--) adjust(i); > tot=0;memset (way,0,sizeof(way)); > for (i=1;i<=h;i++) > { > > tot+=heap[1].num; > heap[1].num-=heap[1].d; > if (heap[1].num<0) heap[1].num=0; > way[heap[1].id]++; > adjust(1); > } > if (tot>=best) > { > for (i=1;i<=n;i++) ans[i]=way[i]; > best=tot; > } > } > if (test!=1) printf("\n"); > printf("%d",ans[1]*5); > for (i=2;i<=n;i++) printf(",%d",ans[i]*5); > printf("\n"); > printf("Number of fish expected:%d\n",best); > } > } > > Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator