summaryrefslogtreecommitdiff
path: root/euler11.c
diff options
context:
space:
mode:
authorIru Cai <mytbk920423@gmail.com>2018-05-24 21:39:58 +0800
committerIru Cai <mytbk920423@gmail.com>2018-05-24 21:39:58 +0800
commit1eefd58ca4fdb5d2f51f657bfd70c9a89a4707db (patch)
treeabde0e4da3c7fe138f3874a94d8eb7d0e44c3224 /euler11.c
downloadproject_euler-1eefd58ca4fdb5d2f51f657bfd70c9a89a4707db.tar.xz
initial commit
Diffstat (limited to 'euler11.c')
-rw-r--r--euler11.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/euler11.c b/euler11.c
new file mode 100644
index 0000000..ea43b48
--- /dev/null
+++ b/euler11.c
@@ -0,0 +1,46 @@
+#include <stdio.h>
+#define MAX 20
+
+int grid[MAX][MAX];
+int biggest[MAX][MAX];
+
+int main()
+{
+ int i,j,M=0;
+ for (i=0;i<MAX;++i){
+ for (j=0;j<MAX;++j){
+ scanf("%d",&grid[i][j]);
+ }
+ }
+ for (i=0;i<MAX;++i){
+ for (j=0;j<MAX;++j){
+ int p;
+ biggest[i][j]=0;
+ if (i<MAX-3){
+ p = grid[i][j]*grid[i+1][j]*grid[i+2][j]*grid[i+3][j];
+ }
+ if (j<MAX-3){
+ p = grid[i][j]*grid[i][j+1]*grid[i][j+2]*grid[i][j+3];
+ if (p>biggest[i][j])
+ biggest[i][j]=p;
+ if (i<MAX-3){
+ p = grid[i][j]*grid[i+1][j+1]*
+ grid[i+2][j+2]*grid[i+3][j+3];
+ if (p>biggest[i][j])
+ biggest[i][j]=p;
+ }
+ if (i>=3){
+ p = grid[i][j]*grid[i-1][j+1]*
+ grid[i-2][j+2]*grid[i-3][j+3];
+ if (p>biggest[i][j])
+ biggest[i][j]=p;
+ }
+ }
+ if (biggest[i][j]>M)
+ M=biggest[i][j];
+ }
+ }
+ printf("%d\n",M);
+ return 0;
+}
+