Skip to content

Commit b50e528

Browse files
author
proton
committed
abc119
1 parent 451677f commit b50e528

File tree

9 files changed

+153
-0
lines changed

9 files changed

+153
-0
lines changed

abc119/a.py

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
ri = lambda: int(input())
2+
rl = lambda: list(map(int,input().split()))
3+
4+
s=input()
5+
if s[5:7]<='04':
6+
print('Heisei')
7+
else:
8+
print('TBD')

abc119/a_r.py

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
s=input()
2+
print('Heisei' if s<='2019/04/30' else 'TBD')

abc119/b.py

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
ri = lambda: int(input())
2+
rl = lambda: list(map(int,input().split()))
3+
4+
N=ri()
5+
ans = 0
6+
rate = 380000.0
7+
for i in range(N):
8+
x,u=input().split()
9+
x = float(x)
10+
ans += x if u=='JPY' else x*rate
11+
12+
print("{:11f}".format(ans))

abc119/c.py

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
ri = lambda: int(input())
2+
rl = lambda: list(map(int,input().split()))
3+
4+
N,A,B,C=rl()
5+
l=[0]*N
6+
for i in range(N):
7+
l[i] = ri()
8+
ans = float('inf')
9+
for n in range(4**N):
10+
a,b,c=0,0,0
11+
ans_ = 0
12+
for i in range(N):
13+
sn = format(n>>(2*i),'0{}b'.format(N))[-2:]
14+
if sn=='01':
15+
a+=l[i]
16+
ans_ += 10
17+
elif sn=='10':
18+
b+=l[i]
19+
ans_ += 10
20+
elif sn=='11':
21+
c+=l[i]
22+
ans_ += 10
23+
if a!=0 and b!=0 and c!=0:
24+
ans_ += abs(A-a)+abs(B-b)+abs(C-c) -30
25+
if ans > ans_:
26+
ans = ans_
27+
28+
print(ans)

abc119/c_r.py

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
ri = lambda: int(input())
2+
rl = lambda: list(map(int,input().split()))
3+
4+
N,A,B,C=rl()
5+
l=[ri() for _ in range(N)]
6+
7+
def dfs(cur,a,b,c):
8+
if cur==N:
9+
return abs(A-a)+abs(B-b)+abs(C-c)-30
10+
ret0 = dfs(cur+1,a,b,c)
11+
ret1 = dfs(cur+1,a+l[cur],b,c)+10
12+
ret2 = dfs(cur+1,a,b+l[cur],c)+10
13+
ret3 = dfs(cur+1,a,b,c+l[cur])+10
14+
return min(ret0,ret1,ret2,ret3)
15+
16+
print(dfs(0,0,0,0))

abc119/c_r1.py

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
ri = lambda: int(input())
2+
rl = lambda: list(map(int,input().split()))
3+
4+
N,A,B,C=rl()
5+
l=[ri() for _ in range(N)]
6+
ans = 10**18
7+
import itertools
8+
for seq in itertools.product(range(4),repeat=N):
9+
a,b,c=0,0,0
10+
rst = 0
11+
for i in range(N):
12+
if seq[i]==1:
13+
a+=l[i]
14+
rst+=10
15+
elif seq[i]==2:
16+
b+=l[i]
17+
rst+=10
18+
elif seq[i]==3:
19+
c+=l[i]
20+
rst+=10
21+
if a*b*c != 0:
22+
rst += abs(A-a)+abs(B-b)+abs(C-c)-30
23+
if ans > rst:
24+
ans = rst
25+
26+
print(ans)

abc119/d.py

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
ri = lambda: int(input())
2+
rl = lambda: list(map(int,input().split()))
3+
4+
A,B,Q=rl()
5+
s=[0]*(A+2)
6+
t=[0]*(B+2)
7+
X=[0]*Q
8+
for i in range(1,A+1):
9+
s[i]=ri()
10+
s[0],s[A+1]=-float('inf'),float('inf')
11+
12+
for i in range(1,B+1):
13+
t[i]=ri()
14+
t[0],t[B+1]=-float('inf'),float('inf')
15+
16+
for i in range(Q):
17+
X[i]=ri()
18+
19+
import bisect
20+
for x in X:
21+
s_i = bisect.bisect_left(s,x)
22+
t_i = bisect.bisect_left(t,x)
23+
s_l = x-s[s_i-1]
24+
s_r = s[s_i]-x
25+
t_l = x-t[t_i-1]
26+
t_r = t[t_i]-x
27+
ans = min(
28+
[max(s_l,t_l), s_l+t_r+min(s_l,t_r), s_r+t_l+min(s_r,t_l), max(s_r,t_r)]
29+
)
30+
print(ans)

abc119/d_r.py

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
ri = lambda: int(input())
2+
rl = lambda: list(map(int,input().split()))
3+
rr = lambda N: [ri() for _ in range(N)]
4+
INF = 10**18
5+
6+
A,B,Q=rl()
7+
s = [-INF] + rr(A) + [INF]
8+
t = [-INF] + rr(B) + [INF]
9+
X= rr(Q)
10+
11+
import bisect
12+
for x in X:
13+
s_i = bisect.bisect_left(s,x)
14+
t_i = bisect.bisect_left(t,x)
15+
s_l = x-s[s_i-1]
16+
s_r = s[s_i]-x
17+
t_l = x-t[t_i-1]
18+
t_r = t[t_i]-x
19+
ans = min(
20+
max(s_l,t_l), s_l+t_r+min(s_l,t_r), s_r+t_l+min(s_r,t_l), max(s_r,t_r)
21+
)
22+
print(ans)

abc90/b_r.py

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
A,B=list(map(int,input().split()))
2+
3+
ans = 0
4+
for i in range(A,B+1):
5+
s = str(i)
6+
if s[0]==s[4] and s[1]==s[3]:
7+
ans+=1
8+
9+
print(ans)

0 commit comments

Comments
 (0)