結果
問題 |
No.678 2Dシューティングゲームの必殺ビーム
|
ユーザー |
|
提出日時 | 2019-01-17 17:59:27 |
言語 | Nim (2.2.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 783 bytes |
コンパイル時間 | 3,085 ms |
コンパイル使用メモリ | 68,224 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-01 10:09:37 |
合計ジャッジ時間 | 3,836 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 18 |
コンパイルメッセージ
/home/judge/data/code/Main.nim(1, 54) Warning: imported and not used: 'strformat' [UnusedImport] /home/judge/data/code/Main.nim(1, 17) Warning: imported and not used: 'strutils' [UnusedImport] /home/judge/data/code/Main.nim(1, 47) Warning: imported and not used: 'macros' [UnusedImport] /home/judge/data/code/Main.nim(1, 36) Warning: imported and not used: 'math' [UnusedImport] /home/judge/data/code/Main.nim(1, 41) Warning: imported and not used: 'sugar' [UnusedImport]
ソースコード
import sequtils,strutils,algorithm,math,sugar,macros,strformat proc getchar_unlocked():char {. importc:"getchar_unlocked",header: "<stdio.h>" .} proc scan(): int = var minus = false while true: var k = getchar_unlocked() if k == '-' : minus = true elif k < '0' or k > '9': break else: result = 10 * result + k.ord - '0'.ord if minus: result *= -1 let n = scan() let xLB = scan() let xRB = scan() let LRD = toSeq(0..<n) .mapIt((let t = (scan(),scan(),scan(),scan()) ;(it,t[0],t[2],t[3]))) .sortedByIt(-it[3]) var limits : array[1281,int] var hits = newSeq[bool](n) for ilrd in LRD: let (i,l,r,d) = ilrd for x in xLB.max(l)..xRB.min(r): if limits[x] >= d: continue limits[x] = d hits[i] = true for hit in hits: if hit : echo 1 else:echo 0