숫자, 합계, 제품


9

음이 아닌 정수의 20 × 20 그리드가 주어지면 개별 라인의 합의 곱이 최대 값에 도달하는 3 × 3 서브 그리드를 찾으십시오. 공식에서 말하는 :

3 × 3 서브 그리드가 주어지면

(1,1)에서 (3,3)까지의 행렬

최대화하는 기능은

f (A) = (x_11 + x_12 + x_13) ⋅ (x_21 + x_22 + x_23) ⋅ (x_31 + x_32 + x_33)

라인 당 합계가 계산 된 다음 개별 합계가 곱해집니다.

예 (5 × 5 만) :

최대 3 × 3 격자가 강조 표시된 예

빨간색으로 강조 표시된 부분 파)은 전체 그리드 에서 함수 값 이 가장 큰 부분입니다.

(35 + 272 + 167) ⋅ (163 + 270 + 242) ⋅ (216 + 68 + 266) = 175972500

입력

입력은 표준 입력으로 제공되며 공백 문자 (U + 0020)로 구분 된 각 20 개의 숫자를 포함하는 20 개의 라인으로 구성됩니다. 숫자는 32 비트 부호있는 정수로 결과를 계산하기에 충분할 정도로 작습니다.

입력이 파일에서 경로 재 지정되었다고 가정 할 수 있습니다.

산출

출력은 파)가장 큰 결과를 제공하는 3 × 3 서브 그리드 에 대한 함수의 결과입니다. 위 예제에서 이것은되었을 것 175972500입니다.

샘플 입력 1

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 5 5 5 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 5 5 5 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 5 5 5 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

샘플 출력 1

3375

샘플 입력 2

40 30 42 222 74 265 93 209 115 274 139 177 7 274 12 15 103 36 236 91
294 97 35 272 167 126 18 262 292 48 8 296 85 93 245 4 4 240 276 153
52 8 163 270 242 224 142 72 99 240 199 26 224 198 96 242 295 70 56 247
247 130 216 68 266 142 93 214 30 8 12 163 59 84 40 287 233 65 30 242
283 245 164 53 148 282 73 186 296 3 9 233 184 30 205 221 92 96 5 101
132 228 43 91 228 37 266 140 159 109 10 230 40 114 264 3 266 164 219 283
70 207 218 28 299 78 279 30 179 118 196 138 61 229 110 55 203 73 124 112
16 232 28 187 292 78 194 70 65 203 255 227 176 21 32 225 11 15 92 151
58 237 261 41 213 171 170 111 4 209 99 194 40 108 267 137 179 31 35 221
184 209 264 275 163 268 261 40 198 185 45 188 280 273 54 79 270 286 273 121
208 83 66 156 104 62 188 68 53 194 46 279 280 170 266 148 272 285 178 245
210 130 213 118 165 210 213 66 54 189 166 193 57 213 14 101 143 109 172 101
80 193 287 4 140 65 208 111 8 206 107 285 109 29 211 78 170 247 290 193
148 123 15 164 28 153 222 67 156 165 6 163 114 77 165 17 143 209 278 100
3 102 58 148 82 181 84 29 2 236 231 195 118 278 252 257 179 123 276 287
143 141 254 142 200 243 171 32 164 195 235 260 269 191 190 46 65 166 82 146
69 194 65 220 234 110 45 135 125 208 138 20 233 291 256 162 148 216 247 138
10 53 164 107 2 270 226 227 88 206 193 13 41 130 218 249 76 35 207 91
199 36 207 256 58 215 28 277 234 29 198 148 219 244 136 16 30 258 219 264
183 118 48 218 15 125 279 103 73 8 86 113 9 157 239 273 146 208 50 86

샘플 출력 2

328536000

샘플 입력 3

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

샘플 출력 3

185193

샘플 입력 4

242 248 292 60 9 45 94 97 294 202 219 118 115 243 207 81 288 289 241 232
236 225 205 227 242 85 139 63 5 162 170 121 208 133 22 235 125 288 209 270
31 182 108 170 88 268 297 66 249 158 285 157 267 117 150 18 44 66 117 223
205 32 93 132 33 99 209 282 222 272 255 1 80 270 202 54 117 35 139 273
87 74 113 146 177 14 154 92 282 4 192 60 171 286 66 299 89 276 138 289
60 16 143 277 202 284 77 296 215 96 200 10 226 143 136 131 218 246 254 20
244 118 299 218 81 195 129 93 205 202 264 141 196 150 214 72 231 136 243 192
236 157 176 187 104 182 134 29 151 234 81 143 22 119 45 241 17 225 197 7
156 284 92 13 131 60 113 77 228 65 200 83 3 63 83 88 241 113 115 198
62 101 242 270 121 122 119 78 105 273 55 7 239 236 37 252 66 164 56 44
70 57 100 87 34 298 140 259 36 257 1 204 110 299 245 56 43 121 192 10
240 36 272 255 10 194 143 66 27 131 22 78 57 71 128 5 1 155 236 122
281 160 42 147 272 151 196 240 291 280 209 245 271 46 103 35 85 145 78 140
155 74 232 205 235 223 147 39 171 240 56 187 184 70 28 81 293 125 283 159
297 203 75 46 221 77 106 12 268 94 220 156 78 97 266 208 228 137 212 49
4 157 69 51 225 23 61 202 19 23 41 260 161 218 142 251 299 187 283 158
118 136 71 77 21 199 110 87 103 120 153 157 213 234 155 141 135 24 120 199
16 204 292 245 54 260 294 159 254 15 209 41 154 54 231 167 87 291 31 26
212 274 99 199 170 184 47 227 64 2 117 275 67 84 143 214 143 125 24 61
205 250 133 88 210 112 4 160 3 287 54 143 293 94 287 42 105 94 76 169

샘플 출력 4

311042813

관심을 끌기 위해 컨테스트에 제출 한 제출 기간은 다음과 같습니다.

120 – AWK
124 – C
133 – Haskell
174 – C
270 – VB.NET

그리고 우리 자신의 (비 랭킹) 솔루션 :

  55 – Golfscript
118 – Ruby
192 – PowerShell

답변:


5

J, 38

":@(>./@,@(3*/\3+/\"1".;._2))&.stdin''

샘플 사용 :

$ jconsole nsp.ijs <g1
3375
$ jconsole nsp.ijs <g2
328536000
$ jconsole nsp.ijs <g3
185193

대략적인 설명 :

  • ".;._2원시 입력을 행렬로 ":변환하고 결과를 원시 출력으로 변환
  • 3+/\"1 열 단위로 합계, 3 x 3
  • 3*/\ 행 단위로 3 곱하기 3
  • , 결과를 평평하게하다
  • >./ 최대를 추출
  • &.stdin'' 필터를 제거합니다

3
멋있는__________!
당신

훌륭한 J 골프!
Eelvex

@ S.Mark __________!
Mateen Ulhaq

6

파이썬-146 자

g=[map(int,raw_input().split(' '))for i in' '*20]
r=range(18)
print max(reduce(int.__mul__,[sum(v[j:j+3])for v in g[i:i+3]])for j in r for i in r)

분할 할 인수는 불필요하며 3 바이트를 절약 할 수 있습니다. 입력을 읽는 더 짧은 방법은 g=eval('map(int,raw_input().split()),'*20)총 139 개의 다른 4 바이트를 절약하는 것입니다.
hallvabo

3

C #을 324 개 321 308 문자

using System;using System.Linq;class X{static void Main(){int m=0,v,x=0,y;Func<int[],int>f=t=>t[x]+t[x+1]+t[x+2];var a=Console.In.ReadToEnd().Trim().Split('\n').Select(l=>l.Split(' ').Select(int.Parse).ToArray()).ToList();for(;x<18;x++)for(y=0;y<18;m=m>v?m:v)v=f(a[y])*f(a[++y])*f(a[y+1]);Console.Write(m);}}

읽을 수있는 :

using System;
using System.Linq;
class X
{
    static void Main()
    {
        int m = 0, v, x = 0, y;
        Func<int[], int> f = t => t[x] + t[x + 1] + t[x + 2];
        var a = Console.In.ReadToEnd().Trim().Split('\n').Select(l =>
            l.Split(' ').Select(int.Parse).ToArray()).ToList();
        for (; x < 18; x++)
            for (y = 0; y < 18; m = m > v ? m : v)
                v = f(a[y]) * f(a[++y]) * f(a[y + 1]);
        Console.Write(m);
    }
}

.Trim()입력이 \n(no \r) 만 사용 하고 마지막 숫자 행 다음에 줄 바꿈이 없음을 보장 할 수있는 경우 두 호출을 모두 제거하여 14자를 줄일 수 있습니다 .

편집

  • (333 → 324 자) 나는 x, y진술에서 각각을 선언하는 대신 맨 위에 선언에 추가 할 수 있음을 깨달았다 for. s 중 하나 를로 변경할 수 있습니다 . 호출 내부에서 증가 하여에서 제거 할 수 있습니다.ToArrayToListyffor

  • (324 개 → 321 문자) 에 할당 이동 mfor세미콜론과 두 개의 중괄호를 제거하기, 문.

  • 의견에 Joey의 제안 (321 → 308 문자) . 감사!


나는 codegolfing에 완전히 부적절한 기술을 사용하여 -1에 유혹하고 있습니다 ... :)
RomanSt

Trim()int.Parse호출은 실제로 (이 후행 공백 무시) (314) 삭제 될 수 있습니다. 그런 다음도 호출 할 수 있습니다 Select단지에 int.Parse인수로; 더 이상 람다가 필요하지 않습니다 (308). 지금은 배열 목록 대신 400 개 항목 1D 배열을 사용하여이 작업을 단축 할 수 있다고 생각하지만 지금은 조정할 수 없습니다. ;-)
Joey

@ 조이 : 와우 ​​... 당신은 내가 멍청한 느낌 :) 감사합니다!
Timwi

3

자바, 299 자

    class M{public static void main(String[]a){java.util.Scanner s=new java.util.Scanner(System.in);int i,j,k,p,m,t=20,x[][]=new int[t][t];for(i=m=0;i<t*t;i++)x[i/t][i%t]=s.nextInt();for(i=0;i<18;i++)for(j=0;j<18;j++,m=p>m?p:m)for(p=1,k=i;k<i+3;k++)p*=x[k][j]+x[k][j+1]+x[k][j+2];System.out.print(m);}}

내가 뭔가 잘못하고 있습니까? 주어진 코드의 무게는 318 바이트입니다. 어쨌든 클래스는 필요하지 않습니다.를 사용 public하여 배열 선언을 x이전 행으로 가져올 수 있습니다 x[][]=new int[t][t]. 액세스를 크게 단순화하는 1 차원 배열을 사용할 수 있습니다. 5 바이트 더 짧은 두 번을 제거하고 import인라인 할 수 있습니다 java.util.. 인라인 e으로 3 바이트를 절약 할 수 있습니다 . 전부 290 바이트로 줄였습니다.
Joey

@Joey, 죄송합니다 Char Count (no spaces). 메모장 ++을 사용하고있었습니다 . 그 변화의 대부분을 할 것입니다. 1D 배열을 사용하면 코드가 많이 변경됩니다.
st0le

글쎄, 선언을로 변경하고 x[]=new int[t*t], 초기화를 x[i]=s.nextInt();에서로 업데이트 p합니다 p*=x[t*k+j]+x[t*k+j+1]+x[t*k+j+2];. 너무 마술도 없다고 생각합니다 :-)
Joey

enum M{M;{code;}}증분 및 루프 조건을 병합 할 수 있습니다.
Nabb

함께 class M{static{java.util.Scanner s=...하면 271 개선 10 %에 온다. :) 출력 후에 오류 메시지가 표시되지만 자동으로 무시할 수 있습니다. :)
사용자가 알 수 없음

2

파이썬 (202)

import sys; g = map (lambda l : map (int, l.split ()), sys.stdin.readlines ())
r = 범위 (18)
범위 (20) : j의 경우 : l = g [j]; g [j] = [r의 i의 경우 합계 (l [i : i + 3])]
g = [g [i] [j] * g [i + 1] [j] * g [i + 2] [j] r의 i에 대한 r의 j의 경우]
최대 인쇄 (g)

편집 : r을 17이 아닌 range (18)로 고정했습니다.


2

루비-78 자

g=*$<
p (0..324).map{|i|eval g[i/18,3].map{|r|eval r.split[i%18,3]*?+}*?*}.max

2

루비, 106 자

k=$<.read.split.map &:to_i;p (0..358).map{|a|a%20>17?0:(0..2).map{|i|k[20*i+a,3].inject:+}.inject(:*)}.max

또 다른 간단한 해결책.

  • 편집 : 이전 솔루션은 일부 엣지 케이스에 대해 잘못된 결과를 생성했습니다.
  • 편집 : (114-> 106) 평면 배열을 사용 index%20하고 다음 행으로 오버플로되지 않도록 확인하십시오 .

2

Windows PowerShell을 116 117 124 152 170

$g=-split$input
(0..359|?{$_%20-le17}|%{$i=$_
(0..2|%{$g[($a=$i+20*$_)..($a+2)]-join'+'|iex})-join'*'|iex}|sort)[-1]

실제로 매우 간단합니다.


2

C 184 171 개 문자

#define f(i,b)for(i=0;i<b;i++)
i,j,k,l,m,M,s,a[400];main(){f(i,400)scanf("%d",a+i);f(i,18)f(j,18){m=1;f(k,3){s=0;f(l,3)s+=a[(i+k)*20+j+l];m*=s;}M=m>M?m:M;}printf("%d",M);}

호출 을 사용 #define f(i,b)for(i=0;i<b;i++)하고 제거 하여 문자를 몇 개 더 짜낼 수 0,있습니다.
Joey Adams

@ 조이 오야! 나는 그것을 완전히 놓쳤다. 감사합니다
fR0DDY

#define f(i,b)for(i=b;--i;)대신 사용할 수 있습니까 ?
Nabb

1

J + tr, 84 + 10

y=:20 20$".(1!:1)3
s=:3 :'(y&((][;.0~3 3,:~[)~))"1(,."0/~i.18)'
>./,([:*/+/"1)"2 s y

이 부분을 ​​프로그램 < golfdata tr \\n ' '| ./test.ijstr \\n ' '일부로 간주합니다 .

y=: 40 30 43 ...
>./,([:*/+/"1)"2 s y
328536000

z =: 20 20 $>:i.20
>./,([:*/+/"1)"2 s z
185193

J 답변을 실행하는 가장 쉬운 방법은 무엇입니까?
gnibbler

@gnibbler : 유감스럽게도 내가 아는 유일한 방법은 J 를 다운로드하여 설치하는 것입니다 .
Eelvex

@gnibbler ... 오픈 소스 입니다. 예
JB

1

하스켈, 129 자

import List
t f z@(_:y@(_:x))=zipWith3((f.).f)z y x
main=interact$show.maximum.(t(*)=<<).transpose.map(t(+).map read.words).lines

1

골프 스크립트, 48 문자

n%"{~}%:^,,{^>3<}%":|~{{+}*}%20/zip|~{{*}*}%$)p;

이전 것

n%{' '%"{~}%:^,,{^>3<}%":|~{{+}*}%}%zip|~{{*}*}%$)p;

일부 설명,하지만 나는 여전히 golfscript 초보자입니다, 일부는 정확하지 않을 수 있습니다.

n % #. 줄
{#. 각각
   ''% # .split ''
   "#"... 리터럴 문자열 시작
      {~} % # .flatten
      : ^ # 변수에 할당 ^
      , #. 크기
      , #. 회
      {#. 각각
         ^> # ^ [n :]
         3 <# [: 3]
      } % # .map 끝
   "# ..."리터럴 문자열 끝
   : | # 리터럴 문자열을 변수에 할당 | 나중에 재사용하기 위해
   ~ #eval
   {#. 각각
      {+} #sum
      * #. 배
   } % # .map 끝
} % # .map 끝
우편 번호 .zip
| ~ #eval 변수 | .zip 결과에 대하여
{#. 각각
   {*} # 제품
   * #. 배
} % # .map 끝
$ #. 정렬
) #uncons / .pop
p # 입력
; # 스택에서 상위 항목 삭제

테스트

$ cat sample-1159-1.txt | golfscript codegolf-1159.gs
3375

$ cat sample-1159-2.txt | golfscript codegolf-1159.gs
328536000

$ cat sample-1159-3.txt | golfscript codegolf-1159.gs
185193

1

APL (Dyalog Unicode) , 22 바이트 SBCS

완전한 프로그램.

⌈/,{×/+/⍵}⌺3 3↑⍎20'⎕'

온라인으로 사용해보십시오!

20⍴'⎕' 문자 (stdin에서 평가 된 입력을 나타냄)를 길이 20으로 변경

 그것을 실행하십시오 (20 개의 목록을 사용하십시오)

 리스트를 행렬로 섞다

{}⌺3 3 각 3x3 하위 행렬에서 :

+/⍵ 행을 합하다

×/ 합계를 곱하십시오

, 합의 행렬을 평평하게하다

⌈/ 최대를 찾으십시오


0

파워 쉘, 103 바이트

(($x=-split($args-replace'(\d+)(?= (\d+) (\d+))','$1+$2+$3')|iex)|%{$_*$x[$j+20]*$x[$j+++40]}|sort)[-1]

설명:

  • 정규 표현식은 스트링과 같은 각각의 변환 1 2 3 4 5 6과 같은 문자열을 1+2+3 2+3+4 3+4+5 5 6;
  • 그런 다음 스크립트는 문자열 1+2+3 2+3+4 3+4+5 5 6을 공백으로 나누고 각 요소를 iex( Invoke-Expression의 별명)으로 평가합니다 . 결과는 다음과 같은 배열입니다 6,9,11,5,6.
  • 마지막으로 스크립트는 모든 배열을 하나로 배열하고 제품을 계산하고 최대 값을 반환합니다.

음이 아닌 정수 의 합의 최대 곱이 필요합니다 . 따라서 각 행과 마지막 2 개의 행에서 마지막 2 개의 값을 필터링 할 필요가 없습니다.

덜 골프 테스트 스크립트

$f = {

$x=-split($args-replace'(\d+)(?= (\d+) (\d+))','$1+$2+$3')|iex
($x|%{$_*$x[$j+20]*$x[$j+++40]}|sort)[-1]

}

@(
    ,(  3375,
        "1 2 3 4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1",
        "4 3 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1",
        "4 3 3 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1",
        "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1",
        "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1",
        "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1",
        "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1",
        "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1",
        "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1",
        "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1",
        "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1",
        "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1",
        "1 1 1 1 1 1 1 1 1 1 1 1 5 5 5 1 1 1 1 1",
        "1 1 1 1 1 1 1 1 1 1 1 1 5 5 5 1 1 1 1 1",
        "1 1 1 1 1 1 1 1 1 1 1 1 5 5 5 1 1 1 1 1",
        "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1",
        "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1",
        "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1",
        "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1",
        "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1")
    ,(  328536000,
        "40 30 42 222 74 265 93 209 115 274 139 177 7 274 12 15 103 36 236 91",
        "294 97 35 272 167 126 18 262 292 48 8 296 85 93 245 4 4 240 276 153",
        "52 8 163 270 242 224 142 72 99 240 199 26 224 198 96 242 295 70 56 247",
        "247 130 216 68 266 142 93 214 30 8 12 163 59 84 40 287 233 65 30 242",
        "283 245 164 53 148 282 73 186 296 3 9 233 184 30 205 221 92 96 5 101",
        "132 228 43 91 228 37 266 140 159 109 10 230 40 114 264 3 266 164 219 283",
        "70 207 218 28 299 78 279 30 179 118 196 138 61 229 110 55 203 73 124 112",
        "16 232 28 187 292 78 194 70 65 203 255 227 176 21 32 225 11 15 92 151",
        "58 237 261 41 213 171 170 111 4 209 99 194 40 108 267 137 179 31 35 221",
        "184 209 264 275 163 268 261 40 198 185 45 188 280 273 54 79 270 286 273 121",
        "208 83 66 156 104 62 188 68 53 194 46 279 280 170 266 148 272 285 178 245",
        "210 130 213 118 165 210 213 66 54 189 166 193 57 213 14 101 143 109 172 101",
        "80 193 287 4 140 65 208 111 8 206 107 285 109 29 211 78 170 247 290 193",
        "148 123 15 164 28 153 222 67 156 165 6 163 114 77 165 17 143 209 278 100",
        "3 102 58 148 82 181 84 29 2 236 231 195 118 278 252 257 179 123 276 287",
        "143 141 254 142 200 243 171 32 164 195 235 260 269 191 190 46 65 166 82 146",
        "69 194 65 220 234 110 45 135 125 208 138 20 233 291 256 162 148 216 247 138",
        "10 53 164 107 2 270 226 227 88 206 193 13 41 130 218 249 76 35 207 91",
        "199 36 207 256 58 215 28 277 234 29 198 148 219 244 136 16 30 258 219 264",
        "183 118 48 218 15 125 279 103 73 8 86 113 9 157 239 273 146 208 50 86")
    ,(  185193,
        "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20",
        "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20",
        "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20",
        "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20",
        "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20",
        "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20",
        "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20",
        "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20",
        "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20",
        "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20",
        "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20",
        "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20",
        "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20",
        "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20",
        "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20",
        "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20",
        "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20",
        "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20",
        "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20",
        "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20")
    ,(  311042813,
        "242 248 292 60 9 45 94 97 294 202 219 118 115 243 207 81 288 289 241 232",
        "236 225 205 227 242 85 139 63 5 162 170 121 208 133 22 235 125 288 209 270",
        "31 182 108 170 88 268 297 66 249 158 285 157 267 117 150 18 44 66 117 223",
        "205 32 93 132 33 99 209 282 222 272 255 1 80 270 202 54 117 35 139 273",
        "87 74 113 146 177 14 154 92 282 4 192 60 171 286 66 299 89 276 138 289",
        "60 16 143 277 202 284 77 296 215 96 200 10 226 143 136 131 218 246 254 20",
        "244 118 299 218 81 195 129 93 205 202 264 141 196 150 214 72 231 136 243 192",
        "236 157 176 187 104 182 134 29 151 234 81 143 22 119 45 241 17 225 197 7",
        "156 284 92 13 131 60 113 77 228 65 200 83 3 63 83 88 241 113 115 198",
        "62 101 242 270 121 122 119 78 105 273 55 7 239 236 37 252 66 164 56 44",
        "70 57 100 87 34 298 140 259 36 257 1 204 110 299 245 56 43 121 192 10",
        "240 36 272 255 10 194 143 66 27 131 22 78 57 71 128 5 1 155 236 122",
        "281 160 42 147 272 151 196 240 291 280 209 245 271 46 103 35 85 145 78 140",
        "155 74 232 205 235 223 147 39 171 240 56 187 184 70 28 81 293 125 283 159",
        "297 203 75 46 221 77 106 12 268 94 220 156 78 97 266 208 228 137 212 49",
        "4 157 69 51 225 23 61 202 19 23 41 260 161 218 142 251 299 187 283 158",
        "118 136 71 77 21 199 110 87 103 120 153 157 213 234 155 141 135 24 120 199",
        "16 204 292 245 54 260 294 159 254 15 209 41 154 54 231 167 87 291 31 26",
        "212 274 99 199 170 184 47 227 64 2 117 275 67 84 143 214 143 125 24 61",
        "205 250 133 88 210 112 4 160 3 287 54 143 293 94 287 42 105 94 76 169")
) | % {
    $expected, $a = $_
    $result = &$f @a
    "$($result-eq$expected): $result"
}

산출

True: 3375
True: 328536000
True: 185193
True: 311042813

Powershell, 105 바이트, 비정규 대안

|?{$_%20-le17}Joey의 답변 에서 현명한 표현 에 대한 찬사 :

(($x=($y=-split$args)|?{$i++%20-le17}|%{+$y[$i-1]+$y[$i]+$y[$i+1]})|%{$_*$x[$j+18]*$x[$j+++36]}|sort)[-1]

이것은 입력 사양을 따르지 않습니다.
Joey

왜? ..........
mazzy

스크립트가 입력을 stdin 대신 인수로 사용하고 있습니다.
Joey

왜 '표준 입력'이 'stdin'이라고 생각합니까?
mazzy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.