| ||||||||||
| 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 | |||||||||
为什么这段代码过不了???疑惑中,注:不是我写的。。。只是讨论一下。。。//按照lrj的书上的算法做的,减掉路程的时间后,每次选最大的钓鱼量;
#include<iostream>
#include<fstream>
#include<algorithm>
using namespace std;
int main()
{
//ifstream cin("tmp.txt");
int h,n,f[26],d[26],t[26];//max_lake=25;
while(cin>>n && n!=0)
{
cin>>h;
h*=12;//60=5*12;
int i,j,k;
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];
}
/////////////////////////////////////input;;;
int res[26]={0};
int max_s=0;
for(j=0;j<=n-1;j++){//j<n;
int ff[26];
for(i=0;i<26;i++){//初始值不变;
ff[i]=f[i];
}
h-=t[j];
if(h<=0) break;
int count[26] = {0};
int s=0;
int pos;
for(i=0;i<h;i++){
int max_=ff[0]; //找最大元素
pos=0;
for(k=0;k<=j;k++){
if( ff[k]>max_ ){
max_=ff[k];
pos=k;
}
}
s+=ff[pos];
count[pos]++; //计数
ff[pos]-=d[pos];
if( ff[pos] <=0 )ff[pos]=0;
}
if(max_s<s){
max_s=s;
for(i=0;i<n;i++){
res[i]=count[i];
}
}
}
for(i=0;i<n;i++){
cout<<res[i]*5;
if(i==n-1)cout<<endl;
else cout<<",";
}
cout<<"Number of fish expected:"<<max_s<<endl;
cout<<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