Submission #4036659


Source Code Expand

#include <numeric>
#include <algorithm>
#include <cstring>
#include <vector>
#include <cstdio>
#include <iostream>
using namespace std;

int D, T, C[8], A[8];

void input() {
    scanf(" %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d",
          &D, &T, &C[0], &C[1], &C[2], &C[3], &C[4], &C[5], &C[6], &C[7],
          &A[0], &A[1], &A[2], &A[3], &A[4], &A[5], &A[6], &A[7]);
}

void fill(int i) { cout << "fill " << i+1 << endl; }
void move(int i, int j) { cout << "move " << i+1 << ' ' << j+1 << endl; }
void change(int i) { cout << "change " << i+1 << endl; }
void pass() { cout << "pass" << endl; }
void sell(vector<int> &v) {
    cout << "sell " << v.size();
    for (int i : v) cout << ' ' << i+1;
    cout << endl;
}

bool sell_if_possible() {
    int buf[51] = {};
    memset(buf, -1, sizeof(buf));
    buf[0] = 0;
    for (int i = 0; i < 8; i++) {
        if (A[i] == 0) continue;
        for (int a = D - A[i]; a >= 0; a--)
            if (buf[a] >= 0 && buf[a+A[i]] < 0) buf[a+A[i]] = i;
    }
    if (buf[D] < 0) return false;
    vector<int> v;
    int a = D;
    while (a > 0) { v.push_back(buf[a]); a -= A[buf[a]]; }
    sell(v);
    return true;
}

int main() {
    int CNT = 1000;
    while (CNT--) {
        int to_fill = -1, c_max = 3, *p;
        input();
        if (accumulate(C, C+8, 0) < 50) c_max = 4;
        if (D > 32 && sell_if_possible()) goto next;
        for (int i = 0; i < 8; i++) {
            if (A[i] == 0 && C[i] > c_max) { c_max = C[i]; to_fill = i; }
        }
        if (to_fill >= 0) { fill(to_fill); goto next; }
        p = min_element(C, C+8);
        if (*p <= c_max) {
            change(p-C); goto next;
        }
        pass();
    next:;
    }
}

Submission Info

Submission Time
Task A - 石油王Xの憂鬱
User kozima
Language C++14 (GCC 5.4.1)
Score 7116686
Code Size 1769 Byte
Status AC
Exec Time 55 ms
Memory 724 KB

Compile Error

./Main.cpp: In function ‘void input()’:
./Main.cpp:14:66: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
           &A[0], &A[1], &A[2], &A[3], &A[4], &A[5], &A[6], &A[7]);
                                                                  ^

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 130238 / 417500 145215 / 417500 148235 / 417500 142672 / 417500 145742 / 417500 155383 / 417500 153081 / 417500 141862 / 417500 145557 / 417500 143720 / 417500 151068 / 417500 143181 / 417500 148538 / 417500 144569 / 417500 138436 / 417500 144821 / 417500 134202 / 417500 134407 / 417500 147801 / 417500 139332 / 417500 142842 / 417500 140745 / 417500 138587 / 417500 144458 / 417500 136083 / 417500 138871 / 417500 141291 / 417500 153069 / 417500 148274 / 417500 142475 / 417500 149369 / 417500 139034 / 417500 144287 / 417500 137866 / 417500 148834 / 417500 142944 / 417500 138115 / 417500 135512 / 417500 139304 / 417500 136419 / 417500 145283 / 417500 141952 / 417500 140507 / 417500 132830 / 417500 148602 / 417500 148542 / 417500 140601 / 417500 125161 / 417500 131673 / 417500 145096 / 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 51 ms 720 KB
subtask_01_02.txt AC 54 ms 720 KB
subtask_01_03.txt AC 53 ms 720 KB
subtask_01_04.txt AC 48 ms 716 KB
subtask_01_05.txt AC 53 ms 716 KB
subtask_01_06.txt AC 50 ms 720 KB
subtask_01_07.txt AC 51 ms 720 KB
subtask_01_08.txt AC 52 ms 720 KB
subtask_01_09.txt AC 53 ms 720 KB
subtask_01_10.txt AC 52 ms 592 KB
subtask_01_11.txt AC 52 ms 720 KB
subtask_01_12.txt AC 50 ms 716 KB
subtask_01_13.txt AC 52 ms 724 KB
subtask_01_14.txt AC 51 ms 716 KB
subtask_01_15.txt AC 51 ms 592 KB
subtask_01_16.txt AC 51 ms 592 KB
subtask_01_17.txt AC 47 ms 720 KB
subtask_01_18.txt AC 54 ms 720 KB
subtask_01_19.txt AC 53 ms 592 KB
subtask_01_20.txt AC 49 ms 716 KB
subtask_01_21.txt AC 49 ms 592 KB
subtask_01_22.txt AC 51 ms 720 KB
subtask_01_23.txt AC 51 ms 720 KB
subtask_01_24.txt AC 53 ms 720 KB
subtask_01_25.txt AC 51 ms 720 KB
subtask_01_26.txt AC 50 ms 720 KB
subtask_01_27.txt AC 53 ms 724 KB
subtask_01_28.txt AC 49 ms 720 KB
subtask_01_29.txt AC 50 ms 588 KB
subtask_01_30.txt AC 53 ms 724 KB
subtask_01_31.txt AC 55 ms 720 KB
subtask_01_32.txt AC 51 ms 660 KB
subtask_01_33.txt AC 52 ms 712 KB
subtask_01_34.txt AC 52 ms 720 KB
subtask_01_35.txt AC 52 ms 716 KB
subtask_01_36.txt AC 51 ms 720 KB
subtask_01_37.txt AC 50 ms 720 KB
subtask_01_38.txt AC 51 ms 720 KB
subtask_01_39.txt AC 51 ms 720 KB
subtask_01_40.txt AC 53 ms 720 KB
subtask_01_41.txt AC 53 ms 720 KB
subtask_01_42.txt AC 52 ms 596 KB
subtask_01_43.txt AC 54 ms 716 KB
subtask_01_44.txt AC 47 ms 720 KB
subtask_01_45.txt AC 52 ms 720 KB
subtask_01_46.txt AC 52 ms 720 KB
subtask_01_47.txt AC 48 ms 724 KB
subtask_01_48.txt AC 53 ms 724 KB
subtask_01_49.txt AC 52 ms 592 KB
subtask_01_50.txt AC 52 ms 720 KB