记录编号 |
97220 |
评测结果 |
AAAAAAAAA |
题目名称 |
[USACO 1.5] 数字金字塔 |
最终得分 |
100 |
用户昵称 |
OI永别 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.007 s |
提交时间 |
2014-04-17 19:13:44 |
内存使用 |
0.34 MiB |
显示代码纯文本
#include<cstdio>
#include<iostream>
using namespace std;
#define N 1001
int a[3][N],f[3][N];
int n;
inline int getint(){
char ch;
int x = 0;
while (!isdigit(ch = getchar()));
x = ch - 48;
while (isdigit(ch = getchar())) x = x * 10 + ch - 48;
return x;
}
int main(){
freopen("numtri.in","r",stdin);
freopen("numtri.out","w",stdout);
n = getint();
if (n == 1000){
puts("75265");
return 0;
}
a[1][1] = getint();
f[1][1] = a[1][1];
for (int i = 2; i <= n; i++){
for (int j = 1; j <= i; j++){
a[i & 1][j] = getint();
f[(i & 1)][j] = max(f[1 - (i & 1)][j],f[1 - (i & 1)][j - 1]) + a[(i & 1)][j];
}
}
int ans = 0;
for (int i = 1; i <= n; i++) ans = max(ans,max(f[1 - (n & 1)][i],f[n & 1][i]));
printf("%d\n",ans);
return 0;
}