結果
問題 | No.1007 コイン集め |
ユーザー | dot_haraai |
提出日時 | 2021-03-30 22:36:26 |
言語 | Nim (2.2.0) |
結果 |
AC
|
実行時間 | 22 ms / 1,500 ms |
コード長 | 1,315 bytes |
コンパイル時間 | 4,014 ms |
コンパイル使用メモリ | 86,272 KB |
実行使用メモリ | 7,552 KB |
最終ジャッジ日時 | 2024-11-30 23:02:11 |
合計ジャッジ時間 | 5,134 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 19 |
コンパイルメッセージ
/home/judge/data/code/Main.nim(2, 18) Warning: Use the new 'sugar' module instead; future is deprecated [Deprecated] /home/judge/data/code/Main.nim(1, 8) Warning: imported and not used: 'times' [UnusedImport] /home/judge/data/code/Main.nim(2, 26) Warning: imported and not used: 'strformat' [UnusedImport] /home/judge/data/code/Main.nim(2, 18) Warning: imported and not used: 'future' [UnusedImport] /home/judge/data/code/Main.nim(2, 37) Warning: imported and not used: 'deques' [UnusedImport] /home/judge/data/code/Main.nim(1, 41) Warning: imported and not used: 'algorithm' [UnusedImport] /home/judge/data/code/Main.nim(1, 52) Warning: imported and not used: 'tables' [UnusedImport] /home/judge/data/code/Main.nim(1, 60) Warning: imported and not used: 'sets' [UnusedImport] /home/judge/data/code/Main.nim(1, 66) Warning: imported and not used: 'lists' [UnusedImport] /home/judge/data/code/Main.nim(1, 73) Warning: imported and not used: 'intsets' [UnusedImport] /home/judge/data/code/Main.nim(2, 8) Warning: imported and not used: 'critbits' [UnusedImport]
ソースコード
import times, strutils, sequtils, math, algorithm, tables, sets, lists, intsets import critbits, future, strformat, deques template `max=`(x,y) = x = max(x,y) template `min=`(x,y) = x = min(x,y) template `mod=`(x,y) = x = x mod y template scan2 = (scan(), scan()) template scan3 = (scan(), scan()) let read* = iterator: string {.closure.} = while true: (for s in stdin.readLine.split: yield s) proc scan(): int = read().parseInt proc scanf(): float = read().parseFloat proc toInt(c:char): int = return int(c) - int('0') proc solve():int= var n = scan() k = scan()-1 a = newseqwith(n,scan()) if a[k]==0: return 0 if a[k]==1: result=a[k] var left = k-1 right=k+1 lr = 1 rr=1 while left>=0 and a[left]>=2: lr+=a[left] left-=1 if left>=0 and a[left]==1: lr+=1 while right<n and a[right]>=2: rr+=a[right] right+=1 if right<n and a[right]==1: rr+=1 result = max(lr,rr) else: result=a[k] var left = k-1 right=k+1 while left>=0 and a[left]>=2: result+=a[left] left-=1 if left>=0 and a[left]==1: result+=1 while right<n and a[right]>=2: result+=a[right] right+=1 if right<n and a[right]==1: result+=1 echo solve()