USACO 1.5 Number Triangles

1 /*
2 ID: jiafeim1
3 PROG: numtri
4 LANG: C++
5 */
6 #include <iostream>
7 #include <fstream>
8 #include <algorithm>
9
10 using namespace std;
11
12
13 #define maxN(x,y) ((x)>(y)?(x):(y))
14 long a[1003] = {0};
15 long b[1003] = {0};
16
17 long* old = a;
18 long* now = b;
19 long* temp;
20 int main()
21 {
22 ofstream fout ("numtri.out");
23 ifstream fin ("numtri.in");
24
25 int line_num;
26 fin>>line_num;
27
28 for(int i =1;i<=line_num;++i)
29 {
30 for(int j = 0;j!=i;++j)
31 {
32 fin>>now[j];
33 }
34 now[0]+=old[0];
35 for(int j = 1; j!=i;++j)
36 {
37 now[j] += maxN(old[j-1],old[j]);
38 }
39 temp = old;
40 old = now;
41 now = temp;
42 }
43
44 long max = 0;
45 for(int i = 0 ;i!=line_num;++i)
46 {
47 if(old[i]>max) max = old[i];
48 }
49 fout<<max<<endl;
50 fin.close();
51 fout.close();
52 return 0;
53 }
posted @ 2011-05-02 13:06  幻魇  阅读(186)  评论(0编辑  收藏  举报