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 |
找不出那里错了,大家帮个忙吧#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