-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathprob149.py
70 lines (52 loc) · 1 KB
/
prob149.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
s = []
for i in range(1, 56):
value = (100003 - 200003*i + 300007*i*i*i)%1000000 - 500000
s.append(value)
for i in xrange(56, 4000001):
value = (s[i-25] + s[i-56] + 1000000)%1000000 - 500000
s.append(value)
import numpy as np
nps = np.array(s)
mat = np.reshape(nps, (2000, 2000))
max_sum = 0
for i in range(2000):
a_sum = 0
for j in range(2000):
a_sum += mat[i][j]
if a_sum > max_sum:
max_sum = a_sum
if a_sum < 0:
a_sum = 0
for j in range(2000):
a_sum = 0
for i in range(2000):
a_sum += mat[i][j]
if a_sum > max_sum:
max_sum = a_sum
if a_sum < 0:
a_sum = 0
for j in range(2000):
a_sum = 0
i = 0
now_j = j
while now_j >= 0 and i < 2000:
a_sum += mat[i][now_j]
now_j -= 1
i += 1
if a_sum > max_sum:
max_sum = a_sum
if a_sum < 0:
a_sum = 0
for i in range(2000):
a_sum = 0
j = 0
now_i = i
while now_i < 2000 and j < 2000:
a_sum += mat[now_i][j]
now_i += 1
j += 1
if a_sum > max_sum:
max_sum = a_sum
if a_sum < 0:
a_sum = 0
print max_sum