結果
問題 | No.884 Eat and Add |
ユーザー | dn6049949 |
提出日時 | 2019-09-13 23:57:34 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 132 ms / 1,000 ms |
コード長 | 2,740 bytes |
コンパイル時間 | 174 ms |
コンパイル使用メモリ | 82,304 KB |
実行使用メモリ | 100,116 KB |
最終ジャッジ日時 | 2024-07-04 10:39:41 |
合計ジャッジ時間 | 1,917 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 51 ms
56,448 KB |
testcase_01 | AC | 46 ms
56,192 KB |
testcase_02 | AC | 46 ms
56,192 KB |
testcase_03 | AC | 127 ms
97,980 KB |
testcase_04 | AC | 125 ms
98,180 KB |
testcase_05 | AC | 125 ms
97,964 KB |
testcase_06 | AC | 132 ms
97,964 KB |
testcase_07 | AC | 120 ms
99,756 KB |
testcase_08 | AC | 121 ms
100,108 KB |
testcase_09 | AC | 121 ms
100,116 KB |
testcase_10 | AC | 44 ms
56,448 KB |
testcase_11 | AC | 45 ms
56,576 KB |
ソースコード
#!usr/bin/env python3 from collections import defaultdict,deque from heapq import heappush, heappop import sys import math import bisect import random def LI(): return [int(x) for x in sys.stdin.readline().split()] def I(): return int(sys.stdin.readline()) def LS():return [list(x) for x in sys.stdin.readline().split()] def S(): res = list(sys.stdin.readline()) if res[-1] == "\n": return res[:-1] return res def IR(n): return [I() for i in range(n)] def LIR(n): return [LI() for i in range(n)] def SR(n): return [S() for i in range(n)] def LSR(n): return [LS() for i in range(n)] sys.setrecursionlimit(1000000) mod = 1000000007 #A def A(): a,b = LI() for i in range(1,101): if a%i == 0 and i%b == 0: print("YES") return print("NO") return #B def B(): n,k = LI() if n >= k**2: h = math.ceil(n/k) s = [] l = 0 for i in range(n//k): s.append(["#" if l <= i < l+k or (i < (l+k)%h and l+k >= h) else "." for i in range(h)]) l += 1 l %= h su = n%k if su: s.append(["#" if l <= i < l+su else "." for i in range(h)]) print(h) for i in s: print(*i,sep="") else: p = n//(k**2) n_ = n-p*k**2 for k_ in range(100000): if k_**2 >= n_:break h = p*k+k_ s = [] l = 0 r = k for i in range(p): for j in range(k): s.append(["#" if l <= i < r else "." for i in range(h)]) l,r = r,r+k for j in range(k_): s.append(["#" if l <= i < r else "." for i in range(h)]) su = p*k**2+k_**2 for i in range(p*k,h)[::-1]: if su == n: break s[-1][i] = "." su -= 1 for i in range(p*k,h-1)[::-1]: if su == n: break s[i][-1] = "." su -= 1 print(h) for i in s: print(*i,sep = "") return #C def C(): s = list(map(int, input())) s = s[::-1] s.append(0) n = len(s) dp = [[float("inf")]*2 for i in range(n+1)] dp[0][0] = 0 for i in range(n): if s[i] == 0: dp[i+1][0] = min(dp[i+1][0],dp[i][0]) dp[i+1][0] = min(dp[i+1][0],dp[i][1]+1) dp[i+1][1] = min(dp[i+1][1],dp[i][1]+1) else: dp[i+1][0] = min(dp[i+1][0],dp[i][0]+1) dp[i+1][1] = min(dp[i+1][1],dp[i][0]+1) dp[i+1][1] = min(dp[i+1][1],dp[i][1]) print(min(dp[n])) return #D def D(): return #E def E(): return #F def F(): return #Solve if __name__ == "__main__": C()