#include #define MAXV 1024 #define INF 0x0FFFFFFF int b,l,n; struct veh { int w, s; }; veh vhs[MAXV]; double tm[MAXV][MAXV]; double mintms[MAXV]; void init() { for(int i=0; i= n) return 0; double t=mintms[k]; if (t < INF) return t; while(i+k-1 < n) { totw += vhs[i+k-1].w; if (totw > b) break; t = min(tm[k][i] + mintm(k+i),t); i++; } mintms[k] = t; // printf("mintm(%d)=%f\n",k,t*60); return t; } int main() { for(;;) { scanf("%d %d %d\n",&b,&l,&n); if (!b && !l && !n) break; for(int i=0; i