Submission #1173962


Source Code Expand

#include <iostream>
#include <sstream>
#include <string>
#include <cassert>
#include <cmath>
#include <climits>
#include <cstdio>
#include <vector>
#include <map>
#include <set>
#include <tuple>
#include <queue>
#include <deque>
#include <algorithm>
#include <functional>
#include <numeric>
#include <iomanip>


using namespace std;
typedef unsigned int uint;
typedef long long ll;
typedef unsigned long long ull;

#define REP(i,n) for(int i = 0; i < (int)(n); ++i)
#define FOR(i,a,b) for(int i = (a); i < (int)(b); ++i)
#define ALL(c) (c).begin(), (c).end()
#define SIZE(v) ((int)v.size())

#define pb push_back
#define mp make_pair
#define mt make_tuple

int D, T;
vector<int> Cs(8);
vector<int> As(8);

int serve_pattern = 0;
bool can_serve(int target) {
    REP(i, 1<<8) {
        int s = 0;
        REP(j, 8) {
            if ((1 << j) & i) {
                s += As[j];
            }
        }
        if (s == target) {
            serve_pattern = i;
            return true;
        }
    }
    return false;
}

int count_bit(int pat) {
    int ans = 0;
    while(pat) {
        if (pat & 1) {
            ans += 1;
        }
        pat /= 2;
    }
    return ans;
}


int fill_idx = 0;
bool can_fill(void) {
    int min_diff = 1e9;
    bool ans = false;
    REP(i, 8) {
        int diff = Cs[i] - As[i];
        if (diff > 0) {
            ans = true;
            if (diff < min_diff) {
                fill_idx = i;
                min_diff = diff;
            }
        }
    }
    return ans;
}

int main(void)
{
    cin.sync_with_stdio(false);
    REP(time, 1000) {
        cin >> D >> T;
        REP(c, 8) cin >> Cs[c];
        REP(a, 8) cin >> As[a];

        // cerr << "current Cs:" << endl;
        // for(auto c : Cs) cerr << c << endl;

        // replace C
        auto sum_c = accumulate(ALL(Cs), 0);
        if (sum_c < 50) {
            auto smallest = min_element(ALL(Cs));
            auto idx = smallest - Cs.begin();
            cout << "change " << (idx + 1) << endl;
        }
        else if (D > 30 && can_serve(D)) {
            cout << "sell " << count_bit(serve_pattern);
            REP(j, 8) {
                if ((1 << j) & serve_pattern) {
                    cout << " " << (j + 1);
                }
            }
            cout << endl;
        }
        else if (can_fill()) {
            cout << "fill " << (fill_idx + 1) << endl;
        }
        else {
            cout << "pass" << endl;
        }
    }

    return 0;
}

Submission Info

Submission Time
Task A - 石油王Xの憂鬱
User minus9d
Language C++14 (GCC 5.4.1)
Score 7133019
Code Size 2594 Byte
Status AC
Exec Time 45 ms
Memory 724 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 136653 / 417500 151076 / 417500 144217 / 417500 141775 / 417500 137068 / 417500 140168 / 417500 147661 / 417500 151303 / 417500 142158 / 417500 146264 / 417500 141323 / 417500 134002 / 417500 143399 / 417500 151786 / 417500 134773 / 417500 150535 / 417500 137348 / 417500 146378 / 417500 150556 / 417500 141755 / 417500 146506 / 417500 144972 / 417500 129046 / 417500 154322 / 417500 138402 / 417500 135850 / 417500 141655 / 417500 147235 / 417500 135113 / 417500 153398 / 417500 149721 / 417500 140790 / 417500 142042 / 417500 147922 / 417500 145281 / 417500 151053 / 417500 147345 / 417500 132480 / 417500 138990 / 417500 139739 / 417500 139794 / 417500 141451 / 417500 145734 / 417500 139004 / 417500 138695 / 417500 134609 / 417500 146583 / 417500 135142 / 417500 140800 / 417500 139147 / 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 43 ms 724 KB
subtask_01_02.txt AC 43 ms 720 KB
subtask_01_03.txt AC 42 ms 724 KB
subtask_01_04.txt AC 42 ms 724 KB
subtask_01_05.txt AC 42 ms 724 KB
subtask_01_06.txt AC 44 ms 720 KB
subtask_01_07.txt AC 44 ms 592 KB
subtask_01_08.txt AC 43 ms 592 KB
subtask_01_09.txt AC 43 ms 720 KB
subtask_01_10.txt AC 41 ms 720 KB
subtask_01_11.txt AC 42 ms 724 KB
subtask_01_12.txt AC 41 ms 720 KB
subtask_01_13.txt AC 42 ms 724 KB
subtask_01_14.txt AC 45 ms 724 KB
subtask_01_15.txt AC 41 ms 720 KB
subtask_01_16.txt AC 45 ms 720 KB
subtask_01_17.txt AC 42 ms 720 KB
subtask_01_18.txt AC 43 ms 720 KB
subtask_01_19.txt AC 44 ms 724 KB
subtask_01_20.txt AC 39 ms 724 KB
subtask_01_21.txt AC 41 ms 708 KB
subtask_01_22.txt AC 44 ms 720 KB
subtask_01_23.txt AC 44 ms 720 KB
subtask_01_24.txt AC 44 ms 592 KB
subtask_01_25.txt AC 43 ms 720 KB
subtask_01_26.txt AC 41 ms 720 KB
subtask_01_27.txt AC 42 ms 720 KB
subtask_01_28.txt AC 40 ms 720 KB
subtask_01_29.txt AC 41 ms 720 KB
subtask_01_30.txt AC 44 ms 720 KB
subtask_01_31.txt AC 44 ms 720 KB
subtask_01_32.txt AC 45 ms 720 KB
subtask_01_33.txt AC 45 ms 716 KB
subtask_01_34.txt AC 43 ms 720 KB
subtask_01_35.txt AC 45 ms 720 KB
subtask_01_36.txt AC 41 ms 716 KB
subtask_01_37.txt AC 42 ms 716 KB
subtask_01_38.txt AC 42 ms 720 KB
subtask_01_39.txt AC 45 ms 724 KB
subtask_01_40.txt AC 45 ms 720 KB
subtask_01_41.txt AC 42 ms 720 KB
subtask_01_42.txt AC 42 ms 720 KB
subtask_01_43.txt AC 44 ms 716 KB
subtask_01_44.txt AC 41 ms 720 KB
subtask_01_45.txt AC 41 ms 724 KB
subtask_01_46.txt AC 43 ms 720 KB
subtask_01_47.txt AC 43 ms 720 KB
subtask_01_48.txt AC 44 ms 720 KB
subtask_01_49.txt AC 41 ms 720 KB
subtask_01_50.txt AC 44 ms 720 KB