結果
問題 | No.755 Zero-Sum Rectangle |
ユーザー |
|
提出日時 | 2019-01-25 20:19:40 |
言語 | Nim (2.2.0) |
結果 |
AC
|
実行時間 | 1,442 ms / 2,000 ms |
コード長 | 1,166 bytes |
コンパイル時間 | 2,387 ms |
コンパイル使用メモリ | 62,052 KB |
実行使用メモリ | 13,756 KB |
最終ジャッジ日時 | 2024-07-01 10:48:10 |
合計ジャッジ時間 | 17,676 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 11 TLE * 1 |
ソースコード
import sequtilstemplate times*(n:int,body) = (for _ in 0..<n: body)proc getchar_unlocked():char {. importc:"getchar_unlocked",header: "<stdio.h>" .}proc scan(): int =var minus = falsewhile true:let k = getchar_unlocked()if k == '-' : minus = trueelif k < '0' or k > '9': breakelse: result = 10 * result + k.ord - '0'.ordif minus: result *= -1let n = scan()let m = scan()let A = newSeqWith(m,newSeqWith(m,scan()))var C = newSeqWith(m,newSeq[int](m))block:C[0][0] = A[0][0]for x in 1..<m: C[x][0] = C[x-1][0] + A[x][0]for y in 1..<m: C[0][y] = C[0][y-1] + A[0][y]for x in 1..<m:for y in 1..<m:C[x][y] = C[x-1][y] + C[x][y-1] - C[x-1][y-1] + A[x][y]proc calcSum(ax,ay,bx,by:int):int =if ax == 0:if ay == 0 : return C[bx][by]return C[bx][by] - C[bx][ay-1]elif ay == 0:return C[bx][by] - C[ax-1][by]return C[bx][by] - C[bx][ay-1] - C[ax-1][by] + C[ax-1][ay-1]n.times:let x = scan() - 1let y = scan() - 1var ans = 0for ax in 0..x:for ay in 0..y:for bx in x..<m:for by in y..<m:if calcSum(ax,ay,bx,by) == 0:ans += 1echo ans