Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

Gone Fishing

Posted by uming39 at 2012-10-01 21:37:40
#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:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator