Submission #4036659


Source Code Expand

Copy
#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
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 Score / Max Score Test Cases
test_01 130238 / 417500 subtask_01_01.txt
test_02 145215 / 417500 subtask_01_02.txt
test_03 148235 / 417500 subtask_01_03.txt
test_04 142672 / 417500 subtask_01_04.txt
test_05 145742 / 417500 subtask_01_05.txt
test_06 155383 / 417500 subtask_01_06.txt
test_07 153081 / 417500 subtask_01_07.txt
test_08 141862 / 417500 subtask_01_08.txt
test_09 145557 / 417500 subtask_01_09.txt
test_10 143720 / 417500 subtask_01_10.txt
test_11 151068 / 417500 subtask_01_11.txt
test_12 143181 / 417500 subtask_01_12.txt
test_13 148538 / 417500 subtask_01_13.txt
test_14 144569 / 417500 subtask_01_14.txt
test_15 138436 / 417500 subtask_01_15.txt
test_16 144821 / 417500 subtask_01_16.txt
test_17 134202 / 417500 subtask_01_17.txt
test_18 134407 / 417500 subtask_01_18.txt
test_19 147801 / 417500 subtask_01_19.txt
test_20 139332 / 417500 subtask_01_20.txt
test_21 142842 / 417500 subtask_01_21.txt
test_22 140745 / 417500 subtask_01_22.txt
test_23 138587 / 417500 subtask_01_23.txt
test_24 144458 / 417500 subtask_01_24.txt
test_25 136083 / 417500 subtask_01_25.txt
test_26 138871 / 417500 subtask_01_26.txt
test_27 141291 / 417500 subtask_01_27.txt
test_28 153069 / 417500 subtask_01_28.txt
test_29 148274 / 417500 subtask_01_29.txt
test_30 142475 / 417500 subtask_01_30.txt
test_31 149369 / 417500 subtask_01_31.txt
test_32 139034 / 417500 subtask_01_32.txt
test_33 144287 / 417500 subtask_01_33.txt
test_34 137866 / 417500 subtask_01_34.txt
test_35 148834 / 417500 subtask_01_35.txt
test_36 142944 / 417500 subtask_01_36.txt
test_37 138115 / 417500 subtask_01_37.txt
test_38 135512 / 417500 subtask_01_38.txt
test_39 139304 / 417500 subtask_01_39.txt
test_40 136419 / 417500 subtask_01_40.txt
test_41 145283 / 417500 subtask_01_41.txt
test_42 141952 / 417500 subtask_01_42.txt
test_43 140507 / 417500 subtask_01_43.txt
test_44 132830 / 417500 subtask_01_44.txt
test_45 148602 / 417500 subtask_01_45.txt
test_46 148542 / 417500 subtask_01_46.txt
test_47 140601 / 417500 subtask_01_47.txt
test_48 125161 / 417500 subtask_01_48.txt
test_49 131673 / 417500 subtask_01_49.txt
test_50 145096 / 417500 subtask_01_50.txt
Case Name Status Exec Time Memory
subtask_01_01.txt 51 ms 720 KB
subtask_01_02.txt 54 ms 720 KB
subtask_01_03.txt 53 ms 720 KB
subtask_01_04.txt 48 ms 716 KB
subtask_01_05.txt 53 ms 716 KB
subtask_01_06.txt 50 ms 720 KB
subtask_01_07.txt 51 ms 720 KB
subtask_01_08.txt 52 ms 720 KB
subtask_01_09.txt 53 ms 720 KB
subtask_01_10.txt 52 ms 592 KB
subtask_01_11.txt 52 ms 720 KB
subtask_01_12.txt 50 ms 716 KB
subtask_01_13.txt 52 ms 724 KB
subtask_01_14.txt 51 ms 716 KB
subtask_01_15.txt 51 ms 592 KB
subtask_01_16.txt 51 ms 592 KB
subtask_01_17.txt 47 ms 720 KB
subtask_01_18.txt 54 ms 720 KB
subtask_01_19.txt 53 ms 592 KB
subtask_01_20.txt 49 ms 716 KB
subtask_01_21.txt 49 ms 592 KB
subtask_01_22.txt 51 ms 720 KB
subtask_01_23.txt 51 ms 720 KB
subtask_01_24.txt 53 ms 720 KB
subtask_01_25.txt 51 ms 720 KB
subtask_01_26.txt 50 ms 720 KB
subtask_01_27.txt 53 ms 724 KB
subtask_01_28.txt 49 ms 720 KB
subtask_01_29.txt 50 ms 588 KB
subtask_01_30.txt 53 ms 724 KB
subtask_01_31.txt 55 ms 720 KB
subtask_01_32.txt 51 ms 660 KB
subtask_01_33.txt 52 ms 712 KB
subtask_01_34.txt 52 ms 720 KB
subtask_01_35.txt 52 ms 716 KB
subtask_01_36.txt 51 ms 720 KB
subtask_01_37.txt 50 ms 720 KB
subtask_01_38.txt 51 ms 720 KB
subtask_01_39.txt 51 ms 720 KB
subtask_01_40.txt 53 ms 720 KB
subtask_01_41.txt 53 ms 720 KB
subtask_01_42.txt 52 ms 596 KB
subtask_01_43.txt 54 ms 716 KB
subtask_01_44.txt 47 ms 720 KB
subtask_01_45.txt 52 ms 720 KB
subtask_01_46.txt 52 ms 720 KB
subtask_01_47.txt 48 ms 724 KB
subtask_01_48.txt 53 ms 724 KB
subtask_01_49.txt 52 ms 592 KB
subtask_01_50.txt 52 ms 720 KB