Skip to content

Commit 00cd11a

Browse files
author
IsHYuhi
committed
add greens
1 parent 9322611 commit 00cd11a

File tree

5 files changed

+173
-5
lines changed

5 files changed

+173
-5
lines changed

ABC/ABC079/D.py

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import heapq
2+
3+
class Edge():
4+
def __init__(self, to, cost):
5+
self.to = to
6+
self.cost = cost
7+
8+
class Pair():
9+
def __init__(self, first, second):
10+
#first: 最短距離, second: 頂点番号
11+
self.first = first
12+
self.second = second
13+
14+
def __lt__(self, other):
15+
return (self.first ,self.second) < (other.first, other.second)
16+
17+
def dijkstra(s):
18+
heapq.heapify(que)
19+
d[s] = 0
20+
heapq.heappush(que, Pair(0, s))
21+
22+
while que:
23+
p = heapq.heappop(que)
24+
v = p.second
25+
if d[v] < p.first:
26+
continue
27+
for i in range(len(G[v])):
28+
e = G[v][i]
29+
if d[e.to] > d[v] + e.cost:
30+
d[e.to] = d[v] + e.cost
31+
heapq.heappush(que, Pair(d[e.to], e.to))
32+
33+
34+
h, w = map(int, input().split())
35+
c = [list(map(int, input().split())) for _ in range(10)]
36+
37+
G = [[] for _ in range(10)]
38+
for i, row in enumerate(c):
39+
for j, cost in enumerate(row):
40+
G[i].append(Edge(j, cost))
41+
42+
field = [list(map(int, input().split())) for _ in range(h)]
43+
costs = []
44+
45+
for i in range(10):
46+
d = [float('inf')]*10
47+
que = []
48+
dijkstra(i)
49+
costs.append(d[1])
50+
51+
ans = 0
52+
for i in range(h):
53+
for j in range(w):
54+
if field[i][j] == -1:
55+
continue
56+
ans += costs[field[i][j]]
57+
58+
print(ans)

ABC/ABC084/D.py

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
import numpy as np
2+
3+
def seachPrimeNum(N):
4+
max = int(np.sqrt(N))
5+
seachList = [i for i in range(2,N+1)]
6+
primeNum = []
7+
while seachList[0] <= max:
8+
primeNum.append(seachList[0])
9+
tmp = seachList[0]
10+
seachList = [i for i in seachList if i % tmp != 0]
11+
primeNum.extend(seachList)
12+
return primeNum
13+
14+
q = int(input())
15+
lr =[]
16+
MAX = 0
17+
for i in range(q):
18+
l, r = map(int, input().split())
19+
lr.append([l, r])
20+
MAX = max(MAX, r)
21+
22+
primes = seachPrimeNum(int(MAX))
23+
l = len(primes)
24+
dic = {}
25+
26+
for i in primes:
27+
dic[i] = True
28+
29+
co_primes = []
30+
for i in range(l):
31+
if dic.get((primes[i]+1)//2):
32+
co_primes.append(primes[i])
33+
34+
prime_for_lr = []
35+
max_l = len(co_primes)
36+
now = 0
37+
38+
for i in range(MAX+1):
39+
if now >= max_l:
40+
prime_for_lr.append(now)
41+
42+
elif i<co_primes[now]:
43+
prime_for_lr.append(now)
44+
45+
else:
46+
now += 1
47+
prime_for_lr.append(now)
48+
49+
for l, r in lr:
50+
print(prime_for_lr[r]-prime_for_lr[l-1])

ABC/ABC085/D.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
from collections import deque
2+
import math
3+
4+
n, h = map(int, input().split())
5+
ab = []
6+
max_a = 0
7+
8+
for _ in range(n):
9+
a, b = map(int, input().split())
10+
max_a = max(max_a, a)
11+
ab.append([a, b])
12+
13+
ab.sort(key=lambda x: x[1], reverse=True)
14+
15+
bs = []
16+
for i in range(n):
17+
if ab[i][1]>max_a:
18+
bs.append(ab[i][1])
19+
20+
ans = 0
21+
bs = deque(bs)
22+
while h>0 and bs:
23+
d = bs.popleft()
24+
h = h-d
25+
ans += 1
26+
27+
if h>0:
28+
ans += math.ceil(h/max_a)
29+
30+
print(ans)

ABC/ABC094/D.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
n = int(input())
2+
a = list(map(int, input().split()))
3+
4+
max_n = max(a)
5+
6+
if max_n%2 == 0:
7+
tmp_r = max_n//2#軸
8+
if tmp_r in a:
9+
print(max_n, tmp_r)
10+
exit()
11+
else:
12+
tmp_r = max_n//2#対象
13+
14+
a.sort()
15+
a_lower = []
16+
a_upper = []
17+
for i in range(n-1):#comb(aj, ai), aj>ai
18+
if a[i]<tmp_r:
19+
a_lower.append(a[i])
20+
else:
21+
a_upper.append(a[i])
22+
23+
if not a_upper:
24+
print(max_n, a_lower[-1])
25+
exit()
26+
27+
if abs(tmp_r-a_lower[-1]) <= abs(tmp_r+1-a_upper[0]):
28+
print(max_n, a_lower[-1])
29+
else:
30+
print(max_n, a_upper[0])

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ AtCoderの問題をpython3で解いたものになります。AC確認は行っ
88
## [AtCoder Beginner Contest](ABC)
99
| Problem A | Problem B | Problem C | Problem D | Problem E | Problem F |
1010
|:---:|:---:|:---:|:---:|:---:|:---:|
11-
|181/181 <img align="center" src="https://img.shields.io/badge/Completed!-green?style=for-the-badge"/>|181/181 <img align="center" src="https://img.shields.io/badge/Completed!-green?style=for-the-badge"/>|158/181|37/175|4/56|0/56|
11+
|181/181 <img align="center" src="https://img.shields.io/badge/Completed!-green?style=for-the-badge"/>|181/181 <img align="center" src="https://img.shields.io/badge/Completed!-green?style=for-the-badge"/>|158/181|41/175|4/56|0/56|
1212

1313

1414
### ABC001 - ABC041
@@ -40,8 +40,8 @@ AtCoderの問題をpython3で解いたものになります。AC確認は行っ
4040
### ABC042 - ABC125
4141
|コンテスト| A | B | C | D ||コンテスト| A | B | C | D |
4242
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
43-
|[ABC042](ABC/ABC042)|[&check;](ABC/ABC042/A.py)|[&check;](ABC/ABC042/B.py)|[&check;](ABC/ABC042/C.py)|||[ABC084](ABC/ABC084)|[&check;](ABC/ABC084/A.py)|[&check;](ABC/ABC084/B.py)|[&check;](ABC/ABC084/C.py)|
44-
|[ABC043](ABC/ABC043)|[&check;](ABC/ABC043/A.py)|[&check;](ABC/ABC043/B.py)|[&check;](ABC/ABC043/C.py)|||[ABC085](ABC/ABC085)|[&check;](ABC/ABC085/A.py)|[&check;](ABC/ABC085/B.py)|[&check;](ABC/ABC085/C.py)|
43+
|[ABC042](ABC/ABC042)|[&check;](ABC/ABC042/A.py)|[&check;](ABC/ABC042/B.py)|[&check;](ABC/ABC042/C.py)|||[ABC084](ABC/ABC084)|[&check;](ABC/ABC084/A.py)|[&check;](ABC/ABC084/B.py)|[&check;](ABC/ABC084/C.py)|[&check;](ABC/ABC084/D.py)|
44+
|[ABC043](ABC/ABC043)|[&check;](ABC/ABC043/A.py)|[&check;](ABC/ABC043/B.py)|[&check;](ABC/ABC043/C.py)|||[ABC085](ABC/ABC085)|[&check;](ABC/ABC085/A.py)|[&check;](ABC/ABC085/B.py)|[&check;](ABC/ABC085/C.py)|[&check;](ABC/ABC085/D.py)|
4545
|[ABC044](ABC/ABC044)|[&check;](ABC/ABC044/A.py)|[&check;](ABC/ABC044/B.py)||||[ABC086](ABC/ABC086)|[&check;](ABC/ABC086/A.py)|[&check;](ABC/ABC086/B.py)|[&check;](ABC/ABC086/C.py)|
4646
|[ABC045](ABC/ABC045)|[&check;](ABC/ABC045/A.py)|[&check;](ABC/ABC045/B.py)|[&check;](ABC/ABC045/C.py)|||[ABC087](ABC/ABC087)|[&check;](ABC/ABC087/A.py)|[&check;](ABC/ABC087/B.py)|[&check;](ABC/ABC087/C.py)|
4747
|[ABC046](ABC/ABC046)|[&check;](ABC/ABC046/A.py)|[&check;](ABC/ABC046/B.py)||||[ABC088](ABC/ABC088)|[&check;](ABC/ABC088/A.py)|[&check;](ABC/ABC088/B.py)|[&check;](ABC/ABC088/C.py)|[&check;](ABC/ABC088/D.py)|
@@ -50,7 +50,7 @@ AtCoderの問題をpython3で解いたものになります。AC確認は行っ
5050
|[ABC049](ABC/ABC049)|[&check;](ABC/ABC049/A.py)|[&check;](ABC/ABC049/B.py)|[&check;](ABC/ABC049/C.py)|||[ABC091](ABC/ABC091)|[&check;](ABC/ABC091/A.py)|[&check;](ABC/ABC091/B.py)||
5151
|[ABC050](ABC/ABC050)|[&check;](ABC/ABC050/A.py)|[&check;](ABC/ABC050/B.py)|[&check;](ABC/ABC050/C.py)|||[ABC092](ABC/ABC092)|[&check;](ABC/ABC092/A.py)|[&check;](ABC/ABC092/B.py)|[&check;](ABC/ABC092/C.py)||
5252
|[ABC051](ABC/ABC051)|[&check;](ABC/ABC051/A.py)|[&check;](ABC/ABC051/B.py)|[&check;](ABC/ABC051/C.py)|||[ABC093](ABC/ABC093)|[&check;](ABC/ABC093/A.py)|[&check;](ABC/ABC093/B.py)|[&check;](ABC/ABC093/C.py)||
53-
|[ABC052](ABC/ABC052)|[&check;](ABC/ABC052/A.py)|[&check;](ABC/ABC052/B.py)|[&check;](ABC/ABC052/C.py)|[&check;](ABC/ABC052/D.py)||[ABC094](ABC/ABC094)|[&check;](ABC/ABC094/A.py)|[&check;](ABC/ABC094/B.py)|[&check;](ABC/ABC094/C.py)||
53+
|[ABC052](ABC/ABC052)|[&check;](ABC/ABC052/A.py)|[&check;](ABC/ABC052/B.py)|[&check;](ABC/ABC052/C.py)|[&check;](ABC/ABC052/D.py)||[ABC094](ABC/ABC094)|[&check;](ABC/ABC094/A.py)|[&check;](ABC/ABC094/B.py)|[&check;](ABC/ABC094/C.py)|[&check;](ABC/ABC094/D.py)|
5454
|[ABC053](ABC/ABC053)|[&check;](ABC/ABC053/A.py)|[&check;](ABC/ABC053/B.py)|[&check;](ABC/ABC053/C.py)|[&check;](ABC/ABC053/D.py)||[ABC095](ABC/ABC095)|[&check;](ABC/ABC095/A.py)|[&check;](ABC/ABC095/B.py)|[&check;](ABC/ABC095/C.py)||
5555
|[ABC054](ABC/ABC054)|[&check;](ABC/ABC054/A.py)|[&check;](ABC/ABC054/A.py)|[&check;](ABC/ABC054/C.py)|||[ABC096](ABC/ABC096)|[&check;](ABC/ABC096/A.py)|[&check;](ABC/ABC096/B.py)|[&check;](ABC/ABC096/C.py)||
5656
|[ABC055](ABC/ABC055)|[&check;](ABC/ABC055/A.py)|[&check;](ABC/ABC055/B.py)|[&check;](ABC/ABC055/C.py)|||[ABC097](ABC/ABC097)|[&check;](ABC/ABC097/A.py)|[&check;](ABC/ABC097/B.py)|[&check;](ABC/ABC097/C.py)||
@@ -77,7 +77,7 @@ AtCoderの問題をpython3で解いたものになります。AC確認は行っ
7777
|[ABC076](ABC/ABC076)|[&check;](ABC/ABC076/A.py)|[&check;](ABC/ABC076/B.py)|[&check;](ABC/ABC076/C.py)|||[ABC118](ABC/ABC118)|[&check;](ABC/ABC118/A.py)|[&check;](ABC/ABC118/B.py)|[&check;](ABC/ABC118/C.py)||
7878
|[ABC077](ABC/ABC077)|[&check;](ABC/ABC077/A.py)|[&check;](ABC/ABC077/B.py)|[&check;](ABC/ABC080/B.py)|||[ABC119](ABC/ABC119)|[&check;](ABC/ABC119/A.py)|[&check;](ABC/ABC119/B.py)|||
7979
|[ABC078](ABC/ABC078)|[&check;](ABC/ABC078/A.py)|[&check;](ABC/ABC078/B.py)|[&check;](ABC/ABC078/C.py)|||[ABC120](ABC/ABC120)|[&check;](ABC/ABC120/A.py)|[&check;](ABC/ABC120/B.py)|[&check;](ABC/ABC120/C.py)||
80-
|[ABC079](ABC/ABC079)|[&check;](ABC/ABC079/A.py)|[&check;](ABC/ABC079/B.py)|[&check;](ABC/ABC079/C.py)|||[ABC121](ABC/ABC121)|[&check;](ABC/ABC121/A.py)|[&check;](ABC/ABC121/B.py)|[&check;](ABC/ABC121/C.py)||
80+
|[ABC079](ABC/ABC079)|[&check;](ABC/ABC079/A.py)|[&check;](ABC/ABC079/B.py)|[&check;](ABC/ABC079/C.py)|[&check;](ABC/ABC079/D.py)||[ABC121](ABC/ABC121)|[&check;](ABC/ABC121/A.py)|[&check;](ABC/ABC121/B.py)|[&check;](ABC/ABC121/C.py)||
8181
|[ABC080](ABC/ABC080)|[&check;](ABC/ABC080/A.py)|[&check;](ABC/ABC080/B.py)|[&check;](ABC/ABC080/C.py)|||[ABC122](ABC/ABC122)|[&check;](ABC/ABC122/A.py)|[&check;](ABC/ABC122/B.py)|[&check;](ABC/ABC122/C.py)||
8282
|[ABC081](ABC/ABC081)|[&check;](ABC/ABC081/A.py)|[&check;](ABC/ABC081/B.py)|[&check;](ABC/ABC081/C.py)|||[ABC123](ABC/ABC123)|[&check;](ABC/ABC123/A.py)|[&check;](ABC/ABC123/B.py)|[&check;](ABC/ABC123/C.py)||
8383
|[ABC082](ABC/ABC082)|[&check;](ABC/ABC082/A.py)|[&check;](ABC/ABC082/B.py)|[&check;](ABC/ABC082/C.py)|||[ABC124](ABC/ABC124)|[&check;](ABC/ABC124/A.py)|[&check;](ABC/ABC124/B.py)|[&check;](ABC/ABC124/C.py)||

0 commit comments

Comments
 (0)