📄 2216514_ac_15ms_28k.c
字号:
# include <stdio.h>
# include <string.h>
int n, h, MAX;
int f[30], d[30], t[30], sum[30];
void solve()
{
int i, j, tmp, fish;
int T[30], max, time[30], ans[30];
MAX = -1;
for(i = 0; i < n; i++)
{
tmp = h;
fish = 0;
tmp -= sum[i];
memset(time,0,sizeof(time));
if(tmp<0)
break;
for(j = 0; j <= i; j++)
T[j] = f[j];
while(tmp>0)
{
max = 0;
for(j = 0; j <= i; j++)
if(T[j]>T[max])
max = j;
if(!T[max])
break;
if(d[max])
{
fish += T[max];
T[max] -= d[max];
tmp--;
time[max]++;
if(T[max]<0)
T[max] = 0;
}
else
{
while(tmp)//&&T[max]>0
{
fish += T[max];
//T[max] -= d[max];
tmp--;time[max]++;
}
T[max] = 0;
}
}
time[0] += tmp;
if(fish>MAX)
{
MAX = fish;
for(j = 0; j < n; j++)
ans[j] = time[j];
}
}
for(j = 0; j < n-1; j++)
printf("%d, ",ans[j]*5);
printf("%d",ans[n-1]*5);
printf("\nNumber of fish expected: %d\n\n",MAX);
}
int input()
{
int i;
scanf("%d",&n);
if(!n)
return 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]);
sum[0] = t[0] = 0;
for(i = 1; i < n; i++)
{
scanf("%d",&t[i]);
sum[i] = t[i]+sum[i-1];
}
solve();
return 1;
}
int main()
{
while(input());
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -