1025. Democracy in Danger
class InputReader():
def nextInt(self):
return int(input().strip())
def nextInts(self):
ints = []
str = input().strip().split()
for s in str:
if (s is None) or (len(s) == 0):
continue
ints.append(int(s))
return ints
if __name__ == '__main__':
reader = InputReader()
n = reader.nextInt()
nums = reader.nextInts()
nums.sort()
sum = 0
for i in range(0 , int((n+1)/2)):
sum += (nums[i]+1)/2
print(int(sum))
1068. Sum
if __name__ == '__main__':
s = input().strip().split(" ")
n = int(s[0])
k = int(len(s[1]))
sum = 1
for i in range(n , 0 , -k):
sum *= i
print(sum)
1020. Rope
import math
class InputReader():
def nextInt(self):
return int(input().strip())
def nextInts(self):
ints = []
str = input().strip().split()
for s in str:
if (s is None) or (len(s) == 0):
continue
ints.append(int(s))
return ints
def nextFloats(self):
floats = []
str = input().strip().split()
for s in str:
if (s is None) or (len(s) == 0):
continue
floats.append(float(s))
return floats
if __name__ == '__main__':
reader = InputReader()
f = reader.nextFloats() ;
n = int(f[0])
r = f[1]
p = []
for i in range(n):
f = reader.nextFloats()
p.append(f)
sum = math.pi * 2 * r
for i in range(0 , n):
sum += math.sqrt( (p[i][0] - p[(i+1)%n][0])**2 + (p[i][1] - p[(i+1)%n][1])**2 )
print("%.2f" % (sum)
1079. Maximum
import math
class InputReader():
def nextInt(self):
return int(input().strip())
def nextInts(self):
ints = []
str = input().strip().split()
for s in str:
if (s is None) or (len(s) == 0):
continue
ints.append(int(s))
return ints
def nextFloats(self):
floats = []
str = input().strip().split()
for s in str:
if (s is None) or (len(s) == 0):
continue
floats.append(float(s))
return floats
if __name__ == '__main__':
reader = InputReader()
n = 100000
a = [0] * n
dp = [0] * n
a[0] = dp[0] = 0
a[1] = dp[1] = 1
for i in range(2 , n):
if i % 2 == 0:
a[i] = a[int(i/2)]
else:
a[i] = a[int(i/2)] + a[int(i/2 + 1)]
dp[i] = max(dp[i-1] , a[i])
while True:
n = reader.nextInt()
if n == 0 :
break
print(dp[n])
1086. Cryptography
import math
class InputReader():
def nextInt(self):
return int(input().strip())
def nextInts(self):
ints = []
str = input().strip().split()
for s in str:
if (s is None) or (len(s) == 0):
continue
ints.append(int(s))
return ints
def nextFloats(self):
floats = []
str = input().strip().split()
for s in str:
if (s is None) or (len(s) == 0):
continue
floats.append(float(s))
return floats
if __name__ == '__main__':
reader = InputReader()
n = 180000
isPrime = [True]*n
prime = []
for i in range(2 , n):
if isPrime[i]:
prime.append(i)
for j in range(i , n , i):
isPrime[j] = False
k = reader.nextInt()
for i in range(0 , k):
print(prime[reader.nextInt()-1])
1021. Sacrament of the Sum
import queue
class InputReader():
def nextInt(self):
return int(input().strip())
def nextInts(self):
ints = []
str = input().strip().split()
for s in str:
if (s is None) or (len(s) == 0):
continue
ints.append(int(s))
return ints
def nextFloats(self):
floats = []
str = input().strip().split()
for s in str:
if (s is None) or (len(s) == 0):
continue
floats.append(float(s))
return floats
class Task():
def solve(self):
reader = InputReader()
n = reader.nextInt()
a = []
b = []
for i in range(0 , n):
a.append(reader.nextInt())
m = reader.nextInt()
for i in range(0 , m):
b.append(reader.nextInt())
i = j = 0
while i < n and j < m :
if a[i] + b[j] == 10000:
return "YES"
elif a[i] + b[j] > 10000:
j += 1
else:
i += 1
return "NO"
if __name__ == '__main__':
task = Task()
print(task.solve())
1023. Buttons
if __name__ == '__main__':
reader = InputReader()
n = reader.nextInt()
res = n - 1
for i in range(3 , int(math.sqrt(n+0.5))+1) :
if n % i == 0 :
res = min(res , i-1)
break
if (n % 2 == 0) and (int(n/2) - 1 >= 2) :
res = min(res , int(n/2) - 1)
print(res)
1197. Lonesome Knight
if __name__ == '__main__':
reader = InputReader()
dir = [[-1,2],[-1,-2],[1,2],[1,-2],[2,-1],[2,1],[-2,1],[-2,-1]]
t = reader.nextInt()
while t > 0:
t -= 1
str = input().strip()
x = ord(str[0]) - ord('a') + 1
y = ord(str[1]) - ord('0')
sum = 0
for d in dir:
nx = x + d[0]
ny = y + d[1]
if (nx in range(1 ,9)) and (ny in range(1 ,9)):
sum += 1
print(sum)
1313. Some Words about Sport
if __name__ == '__main__':
reader = InputReader()
n = reader.nextInt()
a = [[]*n]*n
for i in range(0 , n):
a[i] = reader.nextInts()
for i in range (0 , n):
x = i
y = 0
while x >= 0:
print(a[x][y] , end=" ")
x -= 1
y += 1
for i in range(1, n):
x = n-1
y = i
while y < n:
print(a[x][y], end=" ")
x -= 1
y += 1
1319. Hotel
if __name__ == '__main__':
reader = InputReader()
n = reader.nextInt()
a = [[0]*n for i in range(n)]
step = 1
for i in range(n-1 , -1 , -1):
x = 0
y = i
while y < n:
a[x][y] = step
step += 1
x += 1
y += 1
for i in range(1, n):
x = i
y = 0
while x < n:
a[x][y] = step
step += 1
x += 1
y += 1
for i in range(n):
for j in range(n):
print(a[i][j] , end=" ")
print()
1225. Flags
if __name__ == '__main__':
reader = InputReader()
dp = [[0]*46 for i in range(46)]
dp[1][0] = 1
dp[1][1] = 0
dp[1][2] = 1
dp[2][0] = 1
dp[2][1] = 0
dp[2][2] = 1
for i in range(3 , 46):
dp[i][0] = dp[i-1][2] + dp[i-2][2]
dp[i][2] = dp[i-1][0] + dp[i-2][0]
n = reader.nextInt()
print(dp[n][0] + dp[n][2])
1567. SMS-spam
if __name__ == '__main__':
reader = InputReader()
s = reader.nextLine()
sum = 0
for i in s:
if ' ' == i :
sum += 1
elif ".,!".find(i) > -1:
sum += ".,!".find(i) + 1
else:
sum += (ord(i) - ord('a')) % 3 + 1
print(sum)
1581. Teamwork
if __name__ == '__main__':
reader = InputReader()
n = reader.nextInt()
nums = reader.nextInts()
cnt = 0
c = -100
for i in nums:
if c == i :
cnt += 1
else:
if cnt != 0:
print(cnt , end=" ")
print(c , end=" ")
c = i
cnt = 1
if cnt != 0:
print(cnt, end=" ")
print(c)
1585. Penguins
if __name__ == '__main__':
reader = InputReader()
n = reader.nextInt()
dic = {}
for i in range(0 , n):
s = reader.nextLine()
if dic.get(s):
dic[s] = dic[s] + 1
else:
dic[s] = 1
mx = 0
res = ""
for k ,v in dic.items():
if v > mx:
res = k
mx = v
print(res)
1110. Power
def pow(x , y , m):
s = 1
while y > 0 :
if (y&1) > 0:
s *= x
s %= m
x *= x
x %= m
y >>= 1
return s
if __name__ == '__main__':
reader = InputReader()
nums = reader.nextInts()
n = nums[0]
m = nums[1]
y = nums[2]
res = []
for x in range(0 , m):
if pow(x , n , m) == y:
res.append(x)
if len(res) == 0 :
print(-1)
else:
for i in res:
print(i , end=" ")
1493. One Step from Happiness
def gao(n):
s = str(n)
l = len(s)
for i in range(6-l):
s = "0" + s
sum = 0
for i in s[0:3]:
sum += ord(i)
for i in s[-3:]:
sum -= ord(i)
return sum == 0
def judge(x):
for i in [x-1 ,x ,x+1]:
if gao(i):
return True
return False
if __name__ == '__main__':
reader = InputReader()
n = reader.nextInt()
if judge(n):
print("Yes")
else:
print("No")
1131. Copying
if __name__ == '__main__':
reader = InputReader()
nums = reader.nextInts()
n = nums[0]
k = nums[1]
cnt = 0
sum = 1
while sum < n and sum <= k :
sum *= 2
cnt += 1
if sum < n :
n -= sum
if n % k == 0:
cnt += int(n/k)
else:
cnt += int(n/k) + 1
print(cnt)
1545. Hieroglyphs
if __name__ == '__main__':
reader = InputReader()
n = reader.nextInt()
s = [""] * n
for i in range(n):
s[i] = reader.nextString()
c = reader.nextString()[0]
res = []
for i in s :
if i[0] == c:
res.append(i)
res.sort()
for s in res:
print(s)
1404. Easy to Hack!
def gao(s):
n = len(s)
s2 = [0]*n
s1 = [0]*n
for dx in [0 ,26]:
s3 = s[:]
s2[0] = s3[0] + dx
s1[0] = s2[0] - 5
if s1[0] > 25 or s1[0] < 0 :
continue
for i in range(1 , n):
while s3[i] < s3[i-1]:
s3[i] += 26
s1[i] = s3[i] - s3[i-1]
s = ""
for i in range(n):
c = chr(ord('a') + s1[i])
s += c
can = True
for i in s :
if i < 'a' or i > 'z':
can = False
if can:
return s
if __name__ == '__main__':
reader = InputReader()
s = reader.nextString()
n = len(s)
s3 = [0]*n
for i in range(n):
s3[i] = ord(s[i]) - ord('a')
print(gao(s3))
1139. City Blocks
class InputReader():
def nextInt(self):
return int(input().strip())
def nextSplitInts(self):
a = self.nextInts()
return tuple(a)
def nextLine(self):
return input()
def nextString(self):
return input().strip()
def nextInts(self):
ints = []
str = input().strip().split()
for s in str:
if (s is None) or (len(s) == 0):
continue
ints.append(int(s))
return ints
def nextFloats(self):
floats = []
str = input().strip().split()
for s in str:
if (s is None) or (len(s) == 0):
continue
floats.append(float(s))
return floats
if __name__ == '__main__':
reader = InputReader()
n , m = reader.nextSplitInts()
n -= 1
m -= 1
if n < m :
t = m
m = n
n = t
sum = 0
for i in range(1 , n+1):
r = i * m
l = (i-1)*m
if l % n == 0 or r % n == 0 :
sum += 1
elif int(l/n) != int(r/n):
sum += 2
else:
sum += 1
print(sum)
1120. Sum of Sequential Numbers
if __name__ == '__main__':
reader = InputReader()
n = reader.nextInt()
n *= 2
m = int(math.sqrt(n+0.5))
fac = []
for i in range(1 , m+1):
if n % i == 0:
fac.append(i)
j = int(n/i)
if j != i :
fac.append(j)
fac.sort(reverse=True)
for p in fac:
m = int(n/p - (p -1))
if m > 0 and m % 2 == 0 :
print(str(int(m/2)) + " " + str(p))
break