Submission #1176707


Source Code Expand

import sys
from collections import deque
 
N = 8
loop = 1000
dl = 30
cl = 4
l = 0
 
def solve():
    ans = deque([])
    for lp in range(loop):
        # Input
        D, T = map(int, input().split())
        C = [int(i) for i in input().split()]
        A = [int(i) for i in input().split()]
 
        # 出力すべきものが残ってるなら出力する
        if ans:
            print(ans.popleft(), flush=True)
            continue
 
        # Process
        # まず小さいバケツを探して置き換える
        flag1 = False
        for i in range(l, N):
            if C[i] < cl:
                print('change {}'.format(i + 1), flush=True)
                flag1 = True
                break
 
        if flag1:
            continue
 
        # 全てcl以上になったら売りフェーズに入る
        if D < dl:
            for i in range(N):
                if A[i] == 0:
                    print('fill {}'.format(i + 1), flush=True)
                    break
            else:
                print('pass', flush=True)
        else:
            num_n, need, cmb = canmake(D, T, C, A)
 
            if need is not None:
                for i in need:
                    ans.append('fill {}'.format(i + 1))
                selw = 'sell {}'.format(len(cmb))
                for c in cmb:
                    selw += ' ' + str(c + 1)
                ans.append(selw)
 
                print(ans.popleft(), flush=True)
            else:
                for i in range(N):
                    if A[i] == 0:
                        print('fill {}'.format(i + 1), flush=True)
                        break
                else:
                    print('pass', flush=True)
            
 
def canmake(D, T, C, A):
    uni = 2**N
    res = None
    max_fill = 10
    num_need = 10
    res_cmb = []
 
    for cmd in range(uni):
        val = 0
        restmp = []
        cmbtmp = []
        numtmp = 0
 
        for i in range(N):
            if cmd & (1 << i):
                val += C[i]
                numtmp += 1
                cmbtmp.append(i)
                if A[i] != C[i]:
                    restmp.append(i)
 
        if val == D and len(restmp) < max_fill:
            num_need = numtmp
            max_fill = len(restmp)
            res = restmp[:]
            res_cmb = cmbtmp[:]
 
    if max_fill + 1 < T:
        return numtmp, res, res_cmb
    else:
        return None, None, None
 
def debug(x, table):
    for name, val in table.items():
        if x is val:
            print('DEBUG:{} -> {}'.format(name, val), file=sys.stderr)
            return None
 
if __name__ == '__main__':
    solve()

Submission Info

Submission Time
Task A - 石油王Xの憂鬱
User nanae
Language Python (3.4.3)
Score 6914291
Code Size 2744 Byte
Status AC
Exec Time 256 ms
Memory 3908 KB

Judge Result

Set Name test_01 test_02 test_03 test_04 test_05 test_06 test_07 test_08 test_09 test_10 test_11 test_12 test_13 test_14 test_15 test_16 test_17 test_18 test_19 test_20 test_21 test_22 test_23 test_24 test_25 test_26 test_27 test_28 test_29 test_30 test_31 test_32 test_33 test_34 test_35 test_36 test_37 test_38 test_39 test_40 test_41 test_42 test_43 test_44 test_45 test_46 test_47 test_48 test_49 test_50
Score / Max Score 136561 / 417500 142743 / 417500 143503 / 417500 139210 / 417500 134793 / 417500 130885 / 417500 159783 / 417500 140633 / 417500 137300 / 417500 133864 / 417500 141229 / 417500 139791 / 417500 143162 / 417500 136581 / 417500 138312 / 417500 141343 / 417500 132583 / 417500 135580 / 417500 130328 / 417500 137190 / 417500 152272 / 417500 139289 / 417500 135435 / 417500 139635 / 417500 148027 / 417500 139694 / 417500 139183 / 417500 139892 / 417500 143636 / 417500 143510 / 417500 148813 / 417500 133719 / 417500 126016 / 417500 146012 / 417500 139980 / 417500 137685 / 417500 129436 / 417500 131537 / 417500 134839 / 417500 143033 / 417500 143968 / 417500 134906 / 417500 139950 / 417500 132087 / 417500 141494 / 417500 129726 / 417500 139610 / 417500 127088 / 417500 127420 / 417500 131025 / 417500
Status
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
Set Name Test Cases
test_01 subtask_01_01.txt
test_02 subtask_01_02.txt
test_03 subtask_01_03.txt
test_04 subtask_01_04.txt
test_05 subtask_01_05.txt
test_06 subtask_01_06.txt
test_07 subtask_01_07.txt
test_08 subtask_01_08.txt
test_09 subtask_01_09.txt
test_10 subtask_01_10.txt
test_11 subtask_01_11.txt
test_12 subtask_01_12.txt
test_13 subtask_01_13.txt
test_14 subtask_01_14.txt
test_15 subtask_01_15.txt
test_16 subtask_01_16.txt
test_17 subtask_01_17.txt
test_18 subtask_01_18.txt
test_19 subtask_01_19.txt
test_20 subtask_01_20.txt
test_21 subtask_01_21.txt
test_22 subtask_01_22.txt
test_23 subtask_01_23.txt
test_24 subtask_01_24.txt
test_25 subtask_01_25.txt
test_26 subtask_01_26.txt
test_27 subtask_01_27.txt
test_28 subtask_01_28.txt
test_29 subtask_01_29.txt
test_30 subtask_01_30.txt
test_31 subtask_01_31.txt
test_32 subtask_01_32.txt
test_33 subtask_01_33.txt
test_34 subtask_01_34.txt
test_35 subtask_01_35.txt
test_36 subtask_01_36.txt
test_37 subtask_01_37.txt
test_38 subtask_01_38.txt
test_39 subtask_01_39.txt
test_40 subtask_01_40.txt
test_41 subtask_01_41.txt
test_42 subtask_01_42.txt
test_43 subtask_01_43.txt
test_44 subtask_01_44.txt
test_45 subtask_01_45.txt
test_46 subtask_01_46.txt
test_47 subtask_01_47.txt
test_48 subtask_01_48.txt
test_49 subtask_01_49.txt
test_50 subtask_01_50.txt
Case Name Status Exec Time Memory
subtask_01_01.txt AC 223 ms 3908 KB
subtask_01_02.txt AC 213 ms 3780 KB
subtask_01_03.txt AC 225 ms 3776 KB
subtask_01_04.txt AC 208 ms 3780 KB
subtask_01_05.txt AC 224 ms 3780 KB
subtask_01_06.txt AC 244 ms 3652 KB
subtask_01_07.txt AC 206 ms 3776 KB
subtask_01_08.txt AC 226 ms 3784 KB
subtask_01_09.txt AC 232 ms 3784 KB
subtask_01_10.txt AC 222 ms 3780 KB
subtask_01_11.txt AC 220 ms 3780 KB
subtask_01_12.txt AC 225 ms 3780 KB
subtask_01_13.txt AC 222 ms 3652 KB
subtask_01_14.txt AC 238 ms 3780 KB
subtask_01_15.txt AC 215 ms 3780 KB
subtask_01_16.txt AC 218 ms 3780 KB
subtask_01_17.txt AC 229 ms 3652 KB
subtask_01_18.txt AC 215 ms 3652 KB
subtask_01_19.txt AC 223 ms 3652 KB
subtask_01_20.txt AC 217 ms 3780 KB
subtask_01_21.txt AC 241 ms 3776 KB
subtask_01_22.txt AC 220 ms 3780 KB
subtask_01_23.txt AC 219 ms 3656 KB
subtask_01_24.txt AC 221 ms 3780 KB
subtask_01_25.txt AC 237 ms 3780 KB
subtask_01_26.txt AC 224 ms 3780 KB
subtask_01_27.txt AC 231 ms 3776 KB
subtask_01_28.txt AC 222 ms 3780 KB
subtask_01_29.txt AC 207 ms 3656 KB
subtask_01_30.txt AC 217 ms 3776 KB
subtask_01_31.txt AC 224 ms 3652 KB
subtask_01_32.txt AC 225 ms 3780 KB
subtask_01_33.txt AC 256 ms 3784 KB
subtask_01_34.txt AC 216 ms 3784 KB
subtask_01_35.txt AC 241 ms 3780 KB
subtask_01_36.txt AC 229 ms 3780 KB
subtask_01_37.txt AC 215 ms 3780 KB
subtask_01_38.txt AC 215 ms 3652 KB
subtask_01_39.txt AC 215 ms 3784 KB
subtask_01_40.txt AC 236 ms 3780 KB
subtask_01_41.txt AC 217 ms 3780 KB
subtask_01_42.txt AC 231 ms 3780 KB
subtask_01_43.txt AC 213 ms 3784 KB
subtask_01_44.txt AC 204 ms 3784 KB
subtask_01_45.txt AC 207 ms 3780 KB
subtask_01_46.txt AC 224 ms 3780 KB
subtask_01_47.txt AC 212 ms 3780 KB
subtask_01_48.txt AC 240 ms 3784 KB
subtask_01_49.txt AC 206 ms 3776 KB
subtask_01_50.txt AC 225 ms 3780 KB