Submission #3236206
Source Code Expand
import math n, h = map(int, input().split()) ba = [tuple(map(int, reversed(input().split()))) for i in range(n)] ba.sort(reverse = True) ans = 2000000000 bs = [0] for i in range(n): bs.append(bs[i] + ba[i][0]) if bs[i + 1] >= h: ans = min(ans, i + 1) for i in range(n): b, a = ba[i] L = i R = n while (R - L > 1): M = (L + R) // 2 if ba[M][0] < a: R = M else: L = M if h - bs[R] < 0: continue ans = min(ans, R + math.ceil((h - bs[R]) / a)) print(ans)
Submission Info
Submission Time | |
---|---|
Task | D - Katana Thrower |
User | shirodoni |
Language | Python (3.4.3) |
Score | 400 |
Code Size | 583 Byte |
Status | AC |
Exec Time | 1095 ms |
Memory | 21364 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 400 / 400 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | a01, a02, a03, a04 |
All | a01, a02, a03, a04, b05, b06, b07, b08, b09, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23, b24 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
a01 | AC | 17 ms | 3064 KB |
a02 | AC | 17 ms | 3064 KB |
a03 | AC | 17 ms | 3064 KB |
a04 | AC | 17 ms | 3064 KB |
b05 | AC | 17 ms | 3064 KB |
b06 | AC | 1025 ms | 21364 KB |
b07 | AC | 17 ms | 3064 KB |
b08 | AC | 1024 ms | 21360 KB |
b09 | AC | 17 ms | 3064 KB |
b10 | AC | 17 ms | 3064 KB |
b11 | AC | 17 ms | 3064 KB |
b12 | AC | 17 ms | 3064 KB |
b13 | AC | 972 ms | 14204 KB |
b14 | AC | 905 ms | 14180 KB |
b15 | AC | 917 ms | 14280 KB |
b16 | AC | 940 ms | 14204 KB |
b17 | AC | 1081 ms | 20324 KB |
b18 | AC | 1095 ms | 18136 KB |
b19 | AC | 1045 ms | 14384 KB |
b20 | AC | 980 ms | 14432 KB |
b21 | AC | 989 ms | 17388 KB |
b22 | AC | 1071 ms | 20684 KB |
b23 | AC | 17 ms | 3064 KB |
b24 | AC | 35 ms | 3316 KB |