题目大意:对于输入n不为0时,接下来的n个数字表示棋子的数值,当后面的棋子数值比当前大时,可走。输出起点到终点数值之和(要求在所有走法中最大)。
2个数组,一个记录数值,一个记录到达当前数值最大数值和。
#include <stdio.h>
int main()
{
int i,j,n,sum,max;
int f1[1001],f2[1001];
while(scanf("%d",&n)!=EOF&&n)
{
for(i=0;i<n;i++)
{
scanf("%d",&f1[i]);
f2[i]=f1[i];
}
max=0;
for(i=0;i<n;i++)
{
sum=0;
for(j=0;j<i;j++)
{
if(f1[i]>f1[j]&&f2[j]>sum)
sum=f2[j];
}
f2[i]+=sum;
if(f2[i]>max)
max=f2[i];
}
printf("%d\n",max);
}
return 0;
}