結果
問題 | No.281 門松と魔法(1) |
ユーザー | vwxyz |
提出日時 | 2022-10-03 02:29:24 |
言語 | Python3 (3.12.2 + numpy 1.26.4 + scipy 1.12.0) |
結果 |
AC
|
実行時間 | 41 ms / 1,000 ms |
コード長 | 1,228 bytes |
コンパイル時間 | 158 ms |
コンパイル使用メモリ | 10,984 KB |
実行使用メモリ | 11,264 KB |
最終ジャッジ日時 | 2023-08-26 23:45:27 |
合計ジャッジ時間 | 4,616 ms |
ジャッジサーバーID (参考情報) |
judge15 / judge12 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 40 ms
11,040 KB |
testcase_01 | AC | 41 ms
11,052 KB |
testcase_02 | AC | 41 ms
11,212 KB |
testcase_03 | AC | 41 ms
11,004 KB |
testcase_04 | AC | 40 ms
11,148 KB |
testcase_05 | AC | 40 ms
11,012 KB |
testcase_06 | AC | 40 ms
11,040 KB |
testcase_07 | AC | 40 ms
11,204 KB |
testcase_08 | AC | 40 ms
11,100 KB |
testcase_09 | AC | 39 ms
11,080 KB |
testcase_10 | AC | 40 ms
11,116 KB |
testcase_11 | AC | 41 ms
11,068 KB |
testcase_12 | AC | 40 ms
11,088 KB |
testcase_13 | AC | 40 ms
11,056 KB |
testcase_14 | AC | 39 ms
11,004 KB |
testcase_15 | AC | 39 ms
11,032 KB |
testcase_16 | AC | 39 ms
11,112 KB |
testcase_17 | AC | 40 ms
11,012 KB |
testcase_18 | AC | 40 ms
11,052 KB |
testcase_19 | AC | 39 ms
10,972 KB |
testcase_20 | AC | 40 ms
11,104 KB |
testcase_21 | AC | 39 ms
11,008 KB |
testcase_22 | AC | 40 ms
11,000 KB |
testcase_23 | AC | 40 ms
11,044 KB |
testcase_24 | AC | 40 ms
11,212 KB |
testcase_25 | AC | 39 ms
11,008 KB |
testcase_26 | AC | 39 ms
11,264 KB |
testcase_27 | AC | 40 ms
11,092 KB |
testcase_28 | AC | 40 ms
11,080 KB |
testcase_29 | AC | 40 ms
11,048 KB |
testcase_30 | AC | 39 ms
11,112 KB |
testcase_31 | AC | 39 ms
11,056 KB |
testcase_32 | AC | 39 ms
11,212 KB |
testcase_33 | AC | 40 ms
11,044 KB |
testcase_34 | AC | 40 ms
11,020 KB |
testcase_35 | AC | 40 ms
11,012 KB |
testcase_36 | AC | 39 ms
11,040 KB |
testcase_37 | AC | 40 ms
10,996 KB |
testcase_38 | AC | 40 ms
11,140 KB |
testcase_39 | AC | 40 ms
11,056 KB |
testcase_40 | AC | 39 ms
11,084 KB |
testcase_41 | AC | 40 ms
11,136 KB |
testcase_42 | AC | 39 ms
11,036 KB |
testcase_43 | AC | 40 ms
11,048 KB |
testcase_44 | AC | 39 ms
11,040 KB |
testcase_45 | AC | 40 ms
11,080 KB |
testcase_46 | AC | 39 ms
10,996 KB |
testcase_47 | AC | 39 ms
11,068 KB |
testcase_48 | AC | 39 ms
10,972 KB |
testcase_49 | AC | 39 ms
10,968 KB |
testcase_50 | AC | 40 ms
11,144 KB |
testcase_51 | AC | 39 ms
11,128 KB |
testcase_52 | AC | 39 ms
11,092 KB |
testcase_53 | AC | 39 ms
11,132 KB |
testcase_54 | AC | 39 ms
11,080 KB |
testcase_55 | AC | 40 ms
10,964 KB |
testcase_56 | AC | 40 ms
11,160 KB |
ソースコード
from ast import Mod import bisect import copy import decimal import fractions import heapq import itertools import math import random import sys import time from collections import Counter,deque,defaultdict from functools import lru_cache,reduce from heapq import heappush,heappop,heapify,heappushpop,_heappop_max,_heapify_max def _heappush_max(heap,item): heap.append(item) heapq._siftdown_max(heap, 0, len(heap)-1) def _heappushpop_max(heap, item): if heap and item < heap[0]: item, heap[0] = heap[0], item heapq._siftup_max(heap, 0) return item from math import gcd as GCD read=sys.stdin.read readline=sys.stdin.readline readlines=sys.stdin.readlines write=sys.stdout.write D=int(readline()) H=[int(readline()) for _ in range(3)] inf=1<<60 ans=inf for tpl in itertools.permutations([0,1,2]): if tpl[1]==1: continue HH=H[:] cnt=0 if D: for a,b in zip(tpl[:-1],tpl[1:]): if HH[a]<=HH[b]: c=(HH[b]-HH[a])//D+1 HH[b]-=c*D cnt+=c HH[b]=max(HH[b],0) if len(set(HH))==3 and HH[1] in (min(HH),max(HH)) and all(h>=0 for h in HH): ans=min(ans,cnt) if ans==inf: ans=-1 print(ans)