| ||||||||||
| 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 | |||||||||
Gone Fishing#include <iostream>
using namespace std;
int f[26],d[26],t[26],ff[26],tt[26];
int best_t[26],max_fish,n,h;
int main()
{
int i,j,k,left_time,fish;
while(cin>>n,n>0)
{
cin>>h;h*=12;
for(i=0;i<n;i++)
cin>>f[i];
for(i=0;i<n;i++)
cin>>d[i];
t[0] = 0;
for(i=1;i<n;i++)
{
cin>>t[i];
t[i] += t[i-1];
}
int ok = 0;
for(i = 0;i < n;i++) {
if(f[i] == 0)
ok++;
}
if(ok == n) {
cout<<h*5;
for(j = 1; j < n; j ++)
printf(", 0", best_t[j]);
printf( "\nNumber of fish expected: 0\n\n" );
}
else {
max_fish = 0;
for(k=n-1;k>=0;k--)
{
left_time = h-t[k];
for(i=0;i<n;i++)
{
ff[i] = f[i];
tt[i] = 0;
}
fish = 0;
while(left_time > 0)
{
j = 0;
for(i=1;i<=k;i++)
{
if(ff[i] > ff[j])
j = i;
}
if(ff[j] == 0)
break;
tt[j] += 5;
fish += ff[j];
ff[j] -= d[j];
if(ff[j] <=0)
ff[j] = 0;
left_time --;
}
tt[0] += left_time*5;
if(fish > max_fish)
{
for(i=0;i<n;i++)
best_t[i] = tt[i];
max_fish = fish;
}
else
if( fish==max_fish )
{
for(i=0;i<n;i++)
if(best_t[i] <= tt[i])
break;
if(i != n)
for(i=0;i<n;i++)best_t[i] = tt[i];
}
}
cout<< best_t[0];
for(j = 1; j < n; j ++)
printf(", %d", best_t[j]);
printf( "\nNumber of fish expected: %d\n\n", max_fish );
}
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator