| ||||||||||
| 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 | |||||||||
这是我的代码,我考虑了全0的情况,但是WR,请指教!#include "iostream"
using namespace std;
#define Maxlen 200
int n,h,fi[Maxlen],di[Maxlen],ti[Maxlen];
int FishTmp,TmpF[Maxlen],FishRes,ResF[Maxlen];
int Init()
{
int tmp,j;
cin>>n;
if(n&&n>0&&n<10000){
cin>>h;
for (j=0;j<n;j++)
cin>>fi[j];
for (j=0;j<n;j++)
cin>>di[j];
for (j=0;j<n-1;j++)
cin>>ti[j];
FishRes=-1;
for (j=0;j<n;j++)
{
ResF[j]=0;
}
return 1;
}
else
return 0;
}
void GetFish(int lt,int i)
{
int j=0,k,l;
FishTmp=0;
for (j=0;j<n;j++)
{
TmpF[j]=0;
}
j=0;
for (l=0;l<lt;l++)
{
for(k=0;k<i;k++){
if(fi[j]-di[j]*TmpF[j]<fi[k]-di[k]*TmpF[k]&&fi[j]>=di[j]*TmpF[j]&&fi[k]>=di[k]*TmpF[k])
j=k;
}
if (fi[j]-di[j]*TmpF[j]>0)
{
FishTmp+=fi[j]-di[j]*TmpF[j];
}
TmpF[j]++;
}
}
void Done()
{
int i,j;
int LeftTime;
LeftTime=h*12;
for (i=0;i<n;i++)
{
LeftTime=h*12;
for (j=i+1;j>1;j--)
LeftTime-=ti[j-2];
if (LeftTime<0)
break;
GetFish(LeftTime,i+1);
if (FishTmp>FishRes)
{
FishRes=FishTmp;
j=0;
for(j=0;j<n;j++)
ResF[j]=TmpF[j];
}
}
}
int main()
{
int i;
while (Init())
{
Done();
for (i=0;i<n-1;i++)
{
cout<<ResF[i]*5<<", ";
}
cout<<ResF[i]*5<<endl;
cout<<"Number of fish expected: "<<FishRes<<endl<<endl;
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator