Submission #1176945


Source Code Expand

#include <bits/stdc++.h>
#define FOR(i,a,b) for(int i=(a);i<(b);++i)
#define rep(i,n) FOR(i,0,n)
#define repr(i,n) for(int i=(n)-1;0<=i;--i)
#define each(e,v) for(auto&& e:(v))
#define all(v) begin(v),end(v)
#define DUMP(x) cerr<<#x<<": "<<(x)<<endl
#define DEBUG(x) cerr<<#x<<": "<<(x)<<" (L"<<__LINE__<<")"<<endl
using namespace std;
using vint = vector<int>;
using vdouble = vector<double>;
using vstring = vector<string>;
using ll = long long;
template <class T> void chmin(T& a, const T& b) { a = min(a, b); }
template <class T> void chmax(T& a, const T& b) { a = max(a, b); }

int C[8], A[8];

int sellPattern;
bool canSell(int D) {
    rep(i, 1<<8) {
        int sum = 0;
        rep(j, 8) {
            if(i & (1 << j)) {
                sum += A[j];
            }
        }
        if(sum == D) {
            sellPattern = i;
            return true;
        }
    }
    return false;
}

int fillIndex;
bool canFill() {
    int minDiff = 11;
    bool ans = false;
    rep(i, 8) {
        int diff = C[i] - A[i];
        if(diff == 0) return;
        if(diff < minDiff) {
            ans = true;
            minDiff = diff;
            fillIndex = i;
        }
    }
    return ans;
}

int main() {
    rep(tm, 1000) {
        int D, T; cin >> D >> T;
        rep(i, 8) cin >> C[i];
        rep(i, 8) cin >> A[i];

        if(accumulate(all(C), 0) < 50) {
            auto small = min_element(all(C));
            cout << "change " << (small - begin(C) + 1) << endl;
        } else if(30 < D && canSell(D)) {
            cout << "sell " << (__builtin_popcount(sellPattern));
            rep(i, 8) {
                if(sellPattern & (1 << i)) cout << " " << (i+1);
            }
            cout << endl;
        } else if(canFill()) {
            cout << "fill " << (fillIndex + 1) << endl;
        } else {
            cout << "pass" << endl;
        }
    }
    return 0;
}

Submission Info

Submission Time
Task A - 石油王Xの憂鬱
User zenito9970
Language C++14 (GCC 5.4.1)
Score 0
Code Size 1960 Byte
Status CE

Compile Error

./Main.cpp: In function ‘bool canFill()’:
./Main.cpp:42:23: error: return-statement with no value, in function returning ‘bool’ [-fpermissive]
         if(diff == 0) return;
                       ^