这个不解释了吧,提交后看了下后台数据,相当的大啊。。。
1 /* ID:linyvxi1 2 PROB:numtri 3 LANG:C++ 4 */ 5 #include6 #include 7 #include 8 int max(int a,int b) 9 { 10 return a>b?a:b; 11 } 12 int num_map[1001][1001]; 13 int main() 14 { 15 freopen("numtri.in","r",stdin); 16 freopen("numtri.out","w",stdout); 17 int R; 18 scanf("%d",&R); 19 int i,j; 20 for(i=1;i<=R;i++){ 21 for(j=1;j<=i;j++){ 22 scanf("%d",&num_map[i][j]); 23 } 24 } 25 int max_sum=0; 26 for(i=1;i<=R;i++){ 27 for(j=1;j<=i;j++){ 28 if(i==1){ 29 ; 30 }else if(j==1){ 31 num_map[i][j]+=num_map[i-1][j]; 32 }else if(j==i){ 33 num_map[i][j]+=num_map[i-1][j-1]; 34 }else{ 35 num_map[i][j]+=max(num_map[i-1][j-1],num_map[i-1][j]); 36 } 37 if(num_map[i][j]>max_sum) 38 max_sum=num_map[i][j]; 39 } 40 } 41 printf("%d\n",max_sum); 42 }