[GRYZ2014]递增子序列最大和
【问题描述】
给定长度为n的正整数序列a1,a2,…,an。
求一个递增的子序列,和最大。
【输入】
第一行,n,表示给定序列的个数。
第二行,n个用空格隔开的正整数。
【输出】
递增子序列的最大和。
【数据范围限制】
n<=1000,0<ai<=109。
var a:array[1..100] of longint; f:array[1..100] of longint; n,i,j,ans:longint; function max(x,y:longint):longint; begin if x>y then exit(x) else exit(y); end; begin readln(n); fillchar(f,sizeof(f),0); for i:=1 to n do read(a[i]); f[1]:=a[1];//这句话应该放在数组读完数后面 for i:=2 to n do begin for j:=1 to i-1 do if a[i]>a[j] then f[i]:=max(f[j],f[i]); f[i]:=f[i]+a[i]; end; ans:=0; for i:=1 to n do if f[i]>ans then ans:=f[i]; writeln(ans); end.