Skip to content

Instantly share code, notes, and snippets.

class LittleElephantAndBallsAgain:
def getNumber(self, S):
c = S[0]
longest = 0
l = 1
for s in S[1::]:
if s != c:
longest = max(longest, l)
l = 1
c = s
class LittleElephantAndIntervalsDiv2:
def getNumber(self, M, L, R):
s = set()
count = 0
for i in reversed(xrange(0, len(L))):
is_paint = False
for n in range(L[i], R[i]+1):
if n not in s:
is_paint = True
s.add(n)
@cocodrips
cocodrips / GUMIAndSongsDiv2.py
Created October 29, 2013 13:23
SRM588 Div2 500
import itertools
class GUMIAndSongsDiv2:
def maxSongs(self, duration, tone, T):
duration_tones = []
for i, d in enumerate(duration):
duration_tones.append((tone[i], d))
duration_tones.sort()
@cocodrips
cocodrips / tmp.py
Last active December 27, 2015 13:49
やりとちゅう
class ArcadeManao:
def shortestLadder(self, level, coinRow, coinColumn):
self.level = level
self.goal = (coinRow - 1, coinColumn - 1)
N = len(level) - 1
M = len(level[0]) - 1
print ((N, M), level[N][M])
for ladder_len in xrange(0, N+1):
print ('--start--', ladder_len)
@cocodrips
cocodrips / ArcadeManao.py
Last active December 27, 2015 14:19
SRM576 Div2 Medium / とりあえずできるだけ無駄を減らした
class ArcadeManao:
def shortestLadder(self, level, coinRow, coinColumn):
self.level = level
self.goal = (coinRow - 1, coinColumn - 1)
print self.goal
self.R = len(level)
self.C = len(level[0])
queue = []
visited = set()
@cocodrips
cocodrips / powerN.py
Created November 6, 2013 17:14
2のn乗
print 1 << n
@cocodrips
cocodrips / ArcadeManaoP.py
Last active December 27, 2015 16:19
SRM576 Div2 Medium / PriorityQueueを使ってみる
import Queue
class ArcadeManao:
def shortestLadder(self, level, coinRow, coinColumn):
goal = (coinRow - 1, coinColumn - 1)
R = len(level)
C = len(level[0])
#priority queue (max ladder, current ladder, r, c)
p_queue = Queue.PriorityQueue()
@cocodrips
cocodrips / ColorfulRoad.py
Created November 7, 2013 13:11
SRM596 Div2 Medium
class ColorfulRoad:
DEFAULT = 1000000
def getMin(self, road):
memo = [-1 for i in xrange(len(road))]
ans = self.f(road, 0, memo)
if ans < self.DEFAULT:
return ans
return -1
def f(self, road, n, memo):
@cocodrips
cocodrips / TheNumberGameDivTwo.py
Created November 7, 2013 13:35
SRM575 Div2 Medium / 二人で勝負をする問題 どちらか一方の立場になって自分が勝つか負けるかmemoしてく
class TheNumberGameDivTwo:
def find(self, n):
if self.rec(n):
return 'John'
return 'Brus'
def rec(self, n, memo={}):
if n in memo:
return memo[n]
memo[n] = self.d(n)
@cocodrips
cocodrips / TravelOnMars2.py
Created November 11, 2013 13:09
SRM583 Div1 Easy わーしゃるなふろいどさんで試す
class TravelOnMars2:
def minTimes(self, range, startCity, endCity):
N = len(range)
INF = 1000000
dp = [[INF for _ in xrange(N)] for _ in xrange(N)]
for i in xrange(N):
for j in xrange(N):
l = (i - j + N) % N
r = (j - i + N) % N
if min(l, r) <= range[i]: