| ||||||||||
| 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<iostream.h>
int n,h;
int f[26],d[26],t[26];
int ff[26],tt[26];
int best_t[26],max_fish;
int main()
{
int i,j,k,left_time,fish;
cin>>n;
while(n>0)
{
cin>>h;
for(i=1;i<=n;i++)
{
cin>>f[i];
}
for(i=1;i<=n;i++)
{
cin>>d[i];
}
t[1] = 0;
for(i=2;i<=n;i++)
{
cin>>t[i];
t[i] += t[i-1];
}
max_fish = 0;
for(k=n;k>=1;k--)
{
fish = 0;
left_time = h*60-t[k]*5;//////
for(i=1;i<=n;i++)
{
ff[i] = f[i];
tt[i] = 0;
}
while(left_time > 0)
{
j = 1;
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 -= 5;
}
//left_time>=0;
tt[1] += left_time;
if(fish > max_fish)/// = ?????如何抉择呢??
{
for(i=1;i<=n;i++)
best_t[i] = tt[i];
max_fish = fish;
}
else
if( fish==max_fish )
{
for(i=1;i<=n;i++)
if(best_t[i] <=tt[i])//奇怪之处:改成best_t[i] <tt[i]就过不了!!!!
break;
if(i != n+1)
{
for(i=1;i<=n;i++)best_t[i] = tt[i];
max_fish = fish;
}
}
}//////////////////////////////////
for(i=1;i<n;i++)
{
cout<<best_t[i]<<", ";
}
cout<<best_t[n]<<endl;
cout<<"Number of fish expected: "<<max_fish<<endl;
cout<<endl;
cin>>n;
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator