永发信息网

acm钓鱼问题

答案:1  悬赏:70  手机版
解决时间 2021-02-16 10:42
Sample Input

2
1
10 1
2 5
2
4
4
10 15 20 17
0 3 4 3
1 2 3
4
4
10 15 50 30
0 3 4 3
1 2 3
0
Sample Output

45, 5
Number of fish expected: 31

240, 0, 0, 0
Number of fish expected: 480

115, 10, 50, 35
Number of fish expected: 724

Source

#include<iostream>
using namespace std;

int main()
{
int n,f[10],t[10],d[10],i,time[10],h,max,fish,x,p,time1;
fish=0;
time1=0;
for(i=1;i<=n;i++)
time[i]=0;
while(1)
{
cin>>n;
if(n==0)
break;
cin>>h;
for(i=1;i<=n;i++)
cin>>f[i];
for(i=1;i<=n;i++)
cin>>d[i];
for(i=1;i<n;i++)
{
cin>>t[i];
t[0]=0;
t[i]+=t[i-1];
}
time1=h*12-t[n-1];
while(time1>0)
{
for(i=1;i<=n;i++)
{
x=f[1];
if(f[i]>=x)
{
x=f[i];
p=i;
}
}
if((f[p]-d[p])>0)
{
fish+=f[p];
f[p]=f[p]-d[p];
time[p]++;
time1--;
}
else
{
fish+=f[p];
f[p]=0;
time[p]++;
time1--;
}
}
for(i=1;i<n;i++)
{
cout<<5*time[i]<<' ';
}
cout<<5*time[n];
cout<<"Number of fish expected:";
cout<<fish;
}
return 0;
}这个我得代码只是不知道45怎么来的所以代码不对不知道45分钟是怎么来的!
最佳答案
Source Code

Problem: 1042 User: stomach
Memory: 16K Time: 15MS
Language: C++ Result: Accepted

Source Code
#include <stdio.h>

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(scanf("%d", &n),n>0)
{
scanf("%d", &h);h*=12;
for(i=0;i<n;i++)
scanf("%d", &f[i]);
for(i=0;i<n;i++)
scanf("%d", &d[i]);
t[0] = 0;
for(i=1;i<n;i++)
{
scanf("%d", &t[i]);
t[i] += t[i-1];
}
int ok = 0;
for(i = 0;i < n;i++) {
if(f[i] == 0)
ok++;
}
if(ok == n) {
printf("%d", 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];
}
}
printf("%d", 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;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
迁梦余光是什么意思
乐队一般有几个人?
竹字头下面一个单念什么
平遥家怎么去啊,有知道地址的么
渗碳钢渗碳后不需要进行淬火处理。
求一个卡布仙踪的号
民生金融中心A座西门这个地址在什么地方,我
大量运动之后应该如何来恢复体力补充水分
拉祜族文字是谁创建
嘉宝莉漆(青云店)地址在什么地方,想过去办事
新华区平顶山吃客小站(步行街店)地址是什么,
下列各项中,不记入财务费用科目借方的是()
速卖通卖家留评显示在哪里呢?一定要留评吗?
荒田村地址有知道的么?有点事想过去
系统封装什么意思啊?
推荐资讯
燕鱼浮在水面但还活着还被别的与撞击怎么回事
新进口大众蔚揽和沃尔沃S60L哪个好
益民大药房地址有知道的么?有点事想过去
东城世家地址在哪,我要去那里办事
2019年同步达标名校调研八年级物理上册沪科版
下列不属于社会评价特点的是()。A.宏观性B.
锂离子电池材料倍率性能与什么有关
生物之间存在多种关系,下列属于竞争关系的是
a lucKy dog这个和动物有关的短语是什么意思
山泉路地址在哪,我要去那里办事
①高中阶段中和热一定是△H=-57.3KJ/mol
浦东新区刑警二大队的地址
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?